我遇到了這種情況。我們有一個班可以說主要有一個私人方法打印。還有另一個Main1類,它擴展了Main類並重新定義了打印方法。由於MAIN1是MAIN1類的一個對象,我希望MAIN1打印方法被調用......Java私有方法覆蓋
public class Main {
public static void main(String[] args) {
Main main1 = new Main1();
List<String> list = new ArrayList<String>();
main1.print(list);
}
private void print(List<String> string) {
System.out.println("main");
}
}
class Main1 extends Main {
public void print(List<String> string) {
System.out.println("main1");
}
}
在這種情況下,當我們運行程序時,它打印「主」。它真的讓我感到困惑,因爲這種方法是私人的,甚至不是Main1類的一部分。
你能澄清你的問題嗎?你爲什麼期望它不是私有的,或者是Main1的一部分? –
我也很困惑,當沒有這樣的方法時('print'沒有參數),你怎麼調用main1.print();? –
您已經收到正確答案。這是來自Java語言規範的相關[段落](http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.8.1)。 –