У меня есть два вопроса по этому кодуСмешение «переопределить частный метод»
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 ро;
2) Почему выход «частный е()»
Но как ссылка с объектом подкласса может вызвать частный метод суперкласса ??? это ошибка? –
Нет, это не ошибка, это точно так, как должно работать. – Jesper
, но это не нарушает правила наследования и позднего связывания. –