【发布时间】:2017-11-30 10:04:07
【问题描述】:
当一个类扩展另一个类时,子类构造函数调用超类构造函数。
在这个过程中创建了两个对象,子类和超类。我的问题是这个超类对象在子类对象的整个生命周期中会发生什么?
由于引用属于子类,会被垃圾回收吗?
class A
{
public A()
{
System.out.println("super class constructor");
}
}
class B extends A
{
public B()
{
// super(); default added
System.out.println("sub class constructor");
}
}
class Test
{
public static void main(String[] args)
{
B ob=new B();
}
}
【问题讨论】:
-
这只是一个对象。这个对象是
A和B的实例,所以它需要运行A的初始化和B的初始化。 -
在这个过程中创建了 2 个对象,子类和超类:不,根本没有。正在创建一个对象。
-
别忘了
A也有一个超类java.lang.Object(实际上Object是所有引用类型的超类)。 -
提示:你的标签是假的。你有一个简单的 Java 问题;绝对没有需要为 java8 或 java6 标记它。
-
@erwin 不,不是在 Java 中。
标签: java