質問を説明する以下のコード スニペットを見つけてください。
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()
EDIT:オブジェクトはB(またはAまたは他のクラス)のスーパークラスですが、同じようにAはBのスーパークラスでもあります。私の質問は、Aの「メソッド()」が「参照」に表示されない理由です、つまり、なぜ ref.equals() は許可されているのに ref.method() は許可されていないのですか? このメソッドの可視性チェックはどのように行われますか? JVMをルート化していますか?