Exam exam = new NewlecExam();
Exam을 먼저참조? 해야 그리고나서 NewlecExam(); 참조가능
위에 1번은 당연히 4가 출력되고
아래 2번은 앞의 참조형식인 Exam의 total을 먼저 호출하는것이 아니라 오버라이드한
NewlecExam의 total을 먼저 호출한다.
참조형식이 무엇이냐에 따라 호출할 수 있는 함수가 결정이 되고
오버라이드한 메소드가 있으면 그 메소드가 먼저 호출된다.
위의 경우 1번은 4가 출력되고
2번은 오류가 발생된다.
참조형식이 가지고 있는 메소드에 한해서 생성된 객체의 메소드를 호출할 수 있음
(Exam의 total을 먼저 참고하고 NewlecExam의 total이 호출되는데
Exam의 total이 아예 없기 때문이다. 가지고 있지 않으며 아예 호출자체가 불가능함)
이 경우 둘다 출력값은 3
Exam의 total이 호출되어 3이 된다
'Java 코드연습 > 상속. 메소드의 관계' 카테고리의 다른 글
[뉴렉처] 메소드 동적 바인딩 (0) | 2021.10.31 |
---|---|
[뉴렉처] 메소드의 관계 연습하기 (0) | 2021.10.31 |