One.javaНаследование и государственные/частные методы
public class One {
private void run() {
System.out.println("one");
}
public void start() {
this.run();
}
}
Two.java
public class Two extends One {
public void run() {
System.out.println("two");
}
}
Main.java
public class Main {
public static void main(String[] args) {
Two t = new Two();
t.start();
}
}
Выход: один
Но если я объявляю run
метод public
в классе One
, я получаю «два» в качестве вывода.
Это довольно непредсказуемо, как это работает?
Когда '' '' '' '' '' ' 'метод является закрытым,' Two' не может получить к нему доступ. Когда это 'public', версия в' Two' переопределяет его. – JonK
@JonK вы не можете переопределить частный метод – ControlAltDel
@ControlAltDel Я не сказал, что мог. – JonK