상속
class Parent{
}
class Child extends Parent{
}
void main
① Parent.a = Child()
② Child.b = Child()
위 식에서 ① ② 두 문장의 차이가 궁금합니다.
둘다 = Child()기 때문에 본인들이 태어날때 부모 기본자도 실행할 것이고, 만약 a나 b에 없는 메소드를 실행시킨다면 부모 클래스를 찾아가는 것도 같은데
둘에 무슨 차이가 있는지 모르겠습니다.
답변 1
0
자바에서는 크게 4가지 형태가 있습니다.
(일단 캐스팅(Casting)이라는 것은 한글로 번역하면 보통 형변환으로 많이 번역합니다.)
Only 부모 (
Parent p = new Parent();)Only 자식 (
Child c = new Child();)업캐스팅(Up-Casting): 자식클래스가 부모클래스로 형변환 (
Parent c)다운캐스팅(Down-Casting): 부모클래스가 자식클래스로 형변환 (
Child p)
다운캐스팅은 우리가 커리큘럼 상에서는 배우지 않았죠.
지금 물어보시는 것은 업캐스팅 형태와 Only 자식 형태의 차이를 물어보신 것 같네요.
업캐스팅 형태에서는 형태가 부모 형태라는 뜻입니다.
이 형태는 자식에게만 있는 메서드를 사용할 수 없습니다. 오류가 발생합니다.
Parent에 있거나 자식이 재정의한 것까지만 접근할 수 있습니다.
그 외에는 같은 부모 타입인 경우에는 자식을 계속 갈아 끼울 수 있다는 장점이 있습니다.
Only 자식인 경우에는 본인의 형태에 본인의 생성자로 태어난 객체이기 때문에
자기가 직접 만든 메서드를 사용할 수 있습니다.
다만, 부모 클래스와의 호환성을 이용한 다형성이라는 것을 이용할 수 없습니다.
(여러 자식으로 부모에 호환되도록 갈아 끼울 수가 없음)
그 차이입니다.
나머지는 말씀하신 대로 비슷합니다.
55강 파이썬에만있는 연산자들
0
5
1
55강의 파이썬에서만 있는 연산자들
0
3
1
29강 5:00
0
32
2
띄어쓰기
0
35
2
공부 순서
1
44
2
재귀함수 연산법
0
33
2
26년 1회차 기출 강의
0
63
2
기출문제
0
64
1
C언어에서
0
64
1
포인터 질문
0
58
2
실기 공부 시작 하려고 하는데요
0
109
2
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
98
2
26년 1회 실기 해설 강의
0
116
2
53번 4-1 자료 오류 있는 것 같습니다.
0
109
2
7번문제
0
88
2
C언어 변형문제 9번문제 Pdf 수정요청
0
82
2
메서드 오버드라드
0
73
2
실수
0
64
1
공부 우선순위 우선강의 알려주세요
0
149
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
72
2
25년 2회 기출 5:40 질문입니다.
0
55
2
C언어 출제변형 6번 문제
0
56
2
c언어 출제변형 강의 질문
0
45
2
28:40
0
45
2





