【发布时间】:2012-12-06 13:09:30
【问题描述】:
我注意到以下情况:内部类正在调用它的超类和外部类中的方法。代码如下:
public class Main
{
class Inner extends InnerBase{
public void callMethod(){
method();
}
}
void method(){
System.out.println ("Called Main's method");
}
class InnerBase{
void method(){
System.out.println ("Called InnerBase's method");
}
}
}
现在当 callMethod() 被调用时,它会调用超类的方法并打印“Called InnerBase's method”。如果我试图在调用方法()的方法()上从 IDE(Eclipse)“打开声明”,那么它将转到外部类中的方法。哪个是真实的令人困惑。您能否建议或提供一些材料来解释在外部类和超类中选择同名执行方法的情况。提前谢谢你。
【问题讨论】:
-
让我看看我是否理解正确。你调用 Inner.callMethod(),对吗?所以它应该调用InnerBase.method()。但是您将进入 Inner.method() 的定义(来自 IDE),它会将您带到 Main.method()?
-
@dandrejvv 是的,IDE 没有提供任何警告
-
对我来说这听起来像是 IDE 中的一个错误。