【发布时间】:2017-09-13 23:59:22
【问题描述】:
如果Object 类包含编译器生成的默认构造函数,那么它必须有一个super(); 声明。如果有这个声明,那么它调用的是哪个父类构造函数?怎么做?
因为Object 是所有类的父类,我认为如果我在Object 类构造函数中调用super();,那么它应该会给我们编译时错误,因为我们知道Object 不会从任何东西继承。
class Test
{
Test()
{
super();
}
public static void main(String[] args)
{
Test t = new Test();
}
}
【问题讨论】:
-
Object不必调用超类构造函数。 -
"那么它必须有一个 super()" 为什么?对象很特别,因为它是所有事物的终极
super。 -
但是每个默认构造函数都必须有 super();代码,
-
我想如果我调用 super();在 Object 类构造函数中 你是如何更改
Object类代码的? -
java中的所有类默认都必须继承
java.lang.Object类,所以你在类的构造函数中调用supper()没有问题。
标签: java constructor