【发布时间】:2018-07-19 00:32:15
【问题描述】:
(true or false)如果您编写的构造函数的第一条语句不是对另一个构造函数的调用,则插入一个默认构造函数调用。
这个问题的答案是正确的。 然后我尝试并创建了一些链式构造函数。
public class Temp {
// default constructor 1
Temp()
{
System.out.println("default");
}
// parameterized constructor 2
Temp(int x)
{
System.out.println(x);
}
public static void main(String args[])
{
new Temp(8);
}
}
输出:
8
“默认”未打印。所以我认为没有调用默认构造函数。答案应该是错误的。谁能解释一下原因?
【问题讨论】:
-
它是 true,但是调用的默认构造函数是
super()构造函数。这里是Object。不是Temp。此外,您没有默认构造函数。你有一个无参数的构造函数。如果您根本添加任何构造函数,那么您将没有默认构造函数。
标签: java constructor default-constructor