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