【发布时间】:2015-06-29 12:18:02
【问题描述】:
为什么这段代码只返回类 C 的名称。当我使用 this 时,它应该返回我使用它的构造函数的类的名称。
class A{
public A() {
System.out.println(this.getClass().getName());
}
}
class B extends A{
public B() {
System.out.println(this.getClass().getName());
}
}
class C extends B{
public C() {
System.out.println(this.getClass().getName());
}
}
class Main{
public static void main(String[] args){
new C();
}
}
【问题讨论】:
-
此代码不返回任何内容。它没有
main函数,所以无法知道你到底在运行什么。 -
所以您创建了一个
C类型的对象并期望三个不同的打印输出?这不是对象继承的工作方式。 -
你会得到一个
c消息,因为你重写了构造函数,并声明了一个c实例, -
@Ahmad 你正在重写构造函数。不是真的。
-
@Ahmad 我认为构造函数在 java 中永远不会被覆盖。
标签: java inheritance constructor