Java 코드연습/상속. 메소드의 관계 3

[뉴렉처] 메소드 동적 바인딩

https://www.youtube.com/watch?v=jlA2aYDktiQ&list=PLq8wAnVUcTFX4E2NplMvJfqlcgAeF_BxK&index=21 메소드를 오버라이드하면 우선순위가 높아지는구나 까지 알았을때 왜 우선순위가 높아지는가에 대한 강의 였는데 좀 어렵다.. 다음과 같은 상황일때 출력은 파라미터로 받는 객체가 어떤것이냐에 따라 다름, 들어갈 수 있는 객체는 두가지이다. Exam 일경우 Exam total이 들어오고 NewlecExam일 경우 NewlecExam total이 들어옴 실행중에 함수의 위치가 변경되는걸 동적바인딩이라고함

[뉴렉처] 메소드의 관계 연습하기

https://www.youtube.com/watch?v=vlkOwD828yg&list=PLq8wAnVUcTFX4E2NplMvJfqlcgAeF_BxK&index=19 이해가 안될 경우 다시 참고 A라고 정의되어 있는 범주까지만 볼 수 있는 상태에서 a.f6();이 에러발생함 사용하려면 형변환을 통해 사용할 수 있음 ((B)a).f6(); 이렇게하면 f6(), f7()까지 메소드가 확인이됨 (형식변환을 먼저 하기위해 ()를 한겹 더 씌움, 안하면 . 이 먼저 계산 된다. ) a.f2()는 B클래스에서 f1~f5까지 보이게 되고 그 중 f2가 없기 때문의 부모 클래스의 메소드인 f2가 호출된다. f2는 f3을 호출하게 되고 여기서 f3은 오버라이한 메소드가 우선시 되기 때문에 B클래스의 f3이 호출된다. b..

[뉴렉처] 참조형식과 호출되는 메소드의 관계

Exam exam = new NewlecExam(); Exam을 먼저참조? 해야 그리고나서 NewlecExam(); 참조가능 위에 1번은 당연히 4가 출력되고 아래 2번은 앞의 참조형식인 Exam의 total을 먼저 호출하는것이 아니라 오버라이드한 NewlecExam의 total을 먼저 호출한다. 참조형식이 무엇이냐에 따라 호출할 수 있는 함수가 결정이 되고 오버라이드한 메소드가 있으면 그 메소드가 먼저 호출된다. 위의 경우 1번은 4가 출력되고 2번은 오류가 발생된다. 참조형식이 가지고 있는 메소드에 한해서 생성된 객체의 메소드를 호출할 수 있음 (Exam의 total을 먼저 참고하고 NewlecExam의 total이 호출되는데 Exam의 total이 아예 없기 때문이다. 가지고 있지 않으며 아예 호출..