难道不是超级要引用此处未创建的Object类类型的对象吗?
public class SuperChk
{
void test()
{
System.out.println(super.toString());
}
public static void main(String[] args)
{
SuperChk sc1 = new SuperChk();
System.out.println(sc1);
sc1.test();
}
}
最佳答案
难道不是超级要引用此处未创建的Object类类型的对象吗?
嗯...不super
关键字(当使用这种方式时)说“希望引用this
,但被视为其超类的实例”。这是子类调用其可能已覆盖的超类中的方法的方式。java.lang.Object
类是所有引用类型的最终超类,您的SuperChk
类也是如此。您的SuperChk
类具有toString()
方法(从Object
继承),并且super.toString()
正在调用它。
现在在您的示例中,super.
是多余的,因为SuperChk
不会覆盖String。但这是一个不多余的示例...
public class SuperChk {
private void test() {
System.out.println(toString());
System.out.println(super.toString());
}
@Override
public String toString() {
return "Hello world";
}
public static void main(String[] args) {
SuperChk sc1 = new SuperChk();
sc1.test();
}
}
如果编译并运行它,您将看到
toString()
和super.toString()
调用不同的方法。