我知道这里已经有人问过这个问题,但我不明白“为什么”部分。
让我们以下面的例子为例:
public class First {
First() {
System.out.println(super.getClass());
}
}
public class Second extends First {
Second() {
System.out.println(super.getClass());
}
}
public class Third extends Second {
Third() {
System.out.println(super.getClass());
}
}
当我实例化一个类型为 Third 的对象时:
public class Main {
public static void main(String[] args) {
Third third = new Third();
}
}
输出是:
class Third
class Third
class Third
而我所期望的是(认为 super.getClass() 应该返回父类的名称):
class java.lang.Object
class First
class Second
这表明我不明白继承在 Java 中实际上是如何工作的。请帮助我在脑海中获得正确的概念。
青春有我
冉冉说
相关分类