我一直在使用java并学习我有一个关于类中默认构造函数的问题。 为什么它调用 super (Object 类的构造函数。我知道它会进行构造函数链接)?出于什么原因需要它?
。如果我定义一个这样的类
MyClass
{
public MyClass()
{
}
}
编译器在构造函数中添加 super。
public MyClass()
{
super();
}
P.S 我尝试过谷歌搜索并阅读了 Oracle 文档,但找不到答案。为什么? 感谢您抽出时间。
最佳答案
每个构造函数必须调用同一类的不同构造函数或其直接父类(super class)的构造函数。如果您不显式调用父类(super class)构造函数,则会隐式添加对父类(super class)构造函数的调用。
由于类的实例继承其祖先的状态,因此必须通过调用其祖先的构造函数来初始化它。
就您而言,您的 MyClass
是 Object
的直接子类,因此您的构造函数必须调用 Object
的构造函数。
关于java - 为什么 MyClass 中的默认构造函数调用 Object 类的 super 即,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29741712/