이 코드에 대해 두 가지 질문이 있습니다."개인 메서드 재정의"혼동
public class Override {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Override po = new Derived();
po.f();
}
}
class Derived extends Override {
public void f() {
System.out.println("public f()");
}
}
/*
* Output: private f()
*/// :~
1) 함수 f가 Override po의 참조에서 어떻게 볼 수 있습니까?
2) 왜 "개인 f()"출력
그러나 하위 클래스의 개체를 사용한 참조가 수퍼 클래스의 개인 메서드를 호출 할 수있는 방법 ??? 이게 버그 야? –
아니요, 이것은 버그가 아니며 올바르게 작동해야합니다. – Jesper
하지만 이것은 상속 및 후기 바인딩 규칙을 위반하지 않습니다 –