请在下面找到解释该问题的代码片段。
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
I ref = new B();
ref.equals("");
}
}
interface I{
}
class A {
public void method(){
}
}
class B extends A implements I{
}
请参考main()
,ref.equals()
允许但ref.method()
不允许。为什么会这样?
编辑:对象是B(或A或任何其他类)的超类,但同样A也是B的超类。我的问题是为什么A的'method()'在'ref'中不可见,即为什么允许 ref.equals() 而不允许 ref.method() ?这种方法可见性检查是如何完成的?它是否植根于JVM?