page contents

在 Java 中定义一个不做事且没有参数的构造方法的作用?

轩辕小不懂 发布于 2022-08-31 09:51
阅读 98
收藏 0
分类:Java开发
4214
Nen
Nen
- 程序员

Java 程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super()来调用父类中特定的构造方法,则编译时将发生错误,因为 Java 程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。

问题:子类继承父类时,父类的构造方法什么时候调用?

  实例化一个子类对象时会先执行其父类的构造函数,然后再执行子类的构造函数。

  super()必须先被调用;如果子类构造方法里没有写super(),编译器会自动调用super()方法,即调用父类的默认无参构造方法。所以不可以父类中只定义了有参数的构造方法(在Java中,如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法)

请先 登录 后评论