public class Super{
public Super(){
overrideMe();
}
public void overrideMe(){
}
}
public final class Sub extends Super{
private final Instant instant;
Sub(){
instant = Instant.now();
}
@Override
public void overrideMe() {
System.out.println(instant);
}
public static void main(String[] args){
Sub sub = new Sub();
sub.overrideMe();
}
}
결과값
null
instant
상위 클래스의 생성자는 하위 클래스의 생성자가 인스턴스 필드를 초기화하기 전에 overrideMe 호출.
상속 -> 인터페이스 구현, 래퍼 클래스 패턴