java - 为什么 MyClass 中的默认构造函数调用 Object 类的 super 即

标签 java super default-constructor

我一直在使用java并学习我有一个关于类中默认构造函数的问题。 为什么它调用 super (Object 类的构造函数。我知道它会进行构造函数链接)?出于什么原因需要它?。如果我定义一个这样的类

MyClass 
{

    public MyClass()
       {

       }
}

编译器在构造函数中添加 super。

public MyClass()
{
   super();  
}

P.S 我尝试过谷歌搜索并阅读了 Oracle 文档,但找不到答案。为什么? 感谢您抽出时间。

最佳答案

每个构造函数必须调用同一类的不同构造函数或其直接父类(super class)的构造函数。如果您不显式调用父类(super class)构造函数,则会隐式添加对父类(super class)构造函数的调用。

由于类的实例继承其祖先的状态,因此必须通过调用其祖先的构造函数来初始化它。

就您而言,您的 MyClassObject 的直接子类,因此您的构造函数必须调用 Object 的构造函数。

关于java - 为什么 MyClass 中的默认构造函数调用 Object 类的 super 即,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29741712/

相关文章:

java - 在java中搜索大量文件的内容

python - 为什么分配给 __class__ 单元格会中断 `super` ?

Java AWS S3 PutObject 多部分文件

Java:调用父类(super class)的构造函数,该构造函数调用设置子类字段的重写方法

python - 如何在 Python 3 的方法装饰器中调用 super ?

c++ - C c;之间有什么区别吗?和 C c = C();?

C# - 调用具有所有默认参数的结构构造函数

c++ - 继承的默认构造函数也是用户定义的吗?

java - 部署 Angular 5 Spring Boot 多模块项目-jar

java - 相等运算符如何处理原始数据和对象类型数据