我们今天在我的计算机科学讲座中讨论了继承,并讨论了从其他类访问方法。我的一位同学询问子类如何访问最高父类方法,我的教授也对此感到好奇,并建议如下:
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();
我的问题是两者之间有什么区别,还是完全相同?同样在我上面的代码中,这是从子类调用方法的正确方法吗?