상위 타입 계약으로 여러 구현을 다룹니다.
extends로 상속하고 override로 동작을 재정의합니다. 상위 타입 변수는 여러 하위 객체를 가리킬 수 있으며 실제 객체의 메서드가 실행됩니다.
예제에서 class Child extends Parent; @Override 부분부터 찾으세요. 선언 타입, 실제 객체와 반환값을 한 줄씩 따라가면서 컴파일 단계에서 잡히는 문제와 실행 중 생기는 문제를 구분하세요.
super는 상위 생성자나 구현을 호출합니다. 하위 타입은 상위 타입의 기대를 깨지 않도록 같은 계약을 지켜야 합니다.
코드 재사용만을 위한 깊은 상속보다 구성과 작은 인터페이스를 우선 검토합니다.
현재 코드를 먼저 실행해 출력과 타입 흐름을 확인한 뒤 QuizCourse 구현을 추가하세요.
필드와 static 메서드는 인스턴스 메서드처럼 다형적으로 override되지 않습니다.
직접 바꿔보세요QuizCourse 구현을 추가하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.