mam dwa pytanie o kodMyląc „zastąpić prywatną metody”
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) Jak to funkcja f jest widoczne w nawiązaniu do override PO;
2) Dlaczego jest wyjście "prywatne f()"
Ale w jaki sposób odniesienie do obiektu podklasy może wywołać prywatną metodę superklasy? czy to błąd? –
Nie, to nie jest błąd, to jest dokładnie to, co powinno działać. – Jesper
, ale nie jest to naruszenie zasad dziedziczenia i późnego wiązania –