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();
}
}
输出:一个
但是,如果我在One
类中声明了run
方法public
,我会得到“two”作为输出。
这是非常不可预知的,这是如何工作的?
当'''''run '方法是私人的,'两个'不能访问它。当它是'public'时,'Two'中的版本覆盖它。 – JonK
@JonK你不能重写一个私有方法 – ControlAltDel
@ControlAltDel我没有说你可以。 – JonK