我遇到了这种情况.我们有一个类让我们说主要有私人方法打印.另一个类Main1扩展了Main类并重新定义了print方法.由于main1是Main1类的对象,我希望调用main1 print方法...
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");
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,当我们运行程序时,它会打印"main".它真的让我感到困惑,因为该方法是私有的,甚至不是Main1类的一部分.
Joa*_*uer 13
答案并不太难:
main1变量Main(不 Main1)print接受List<String>on的方法Main是私有方法Main因此它可以调用该类中的私有方法因此Main.print(List<String>)将被称为.
请注意,更改main1to 的类型Main1将导致调用另一个 print(List<String>)方法.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |