我们今天在我的计算机科学讲座中讨论了继承,并讨论了从其他类访问方法。我的一位同学询问子类如何访问最高父类方法,我的教授也对此感到好奇,并建议如下:
super.super.toString();
也许能够工作,但事实并非如此。出于好奇,我试图自己解决这个问题并想出了这个:
public class A {
    public static void main(String[] args){
        B b = new B();
        C c = new C();
        System.out.println(b.toString());
        System.out.println(c.toString());
    }
    public String toString(){
        return "Class A";
    }
}
class B extends A {
    public String toString(){
        return "Class B";
    }
}
class C extends B {
    public String toString(){
        return A.class.toString();
    }
}
成功了,现在在测试各种东西时我偶然发现了这个:(这都将在 C 类中完成)
super.toString();
似乎做同样的事情:
B.class.toString();
我的问题是两者之间有什么区别,还是完全相同?同样在我上面的代码中,这是从子类调用方法的正确方法吗?