美文网首页
如果父类没有无参构造方法,该怎么办?

如果父类没有无参构造方法,该怎么办?

作者: JAVA加油 | 来源:发表于2023-06-30 08:55 被阅读0次

如果父类没有无参构造方法,该怎么办?

如果父类没有无参构造方法,那么子类必须通过调用父类的有参构造方法来初始化父类的属性。在子类的构造方法中,可以使用 super 关键字来调用父类的有参构造方法。

例如,假设有如下的父类和子类:

public class Animal {    private String name;    public Animal(String name) {        this.name = name;}    public void eat() {        System.out.println(name + "正在吃饭...");}}public class Cat extends Animal {    private int age;    public Cat(String name, int age) {        super(name); // 调用父类的有参构造方法        this.age = age;}    public void printInfo() {eat();        System.out.println("名字:" + name + ",年龄:" + age);}}

在这个示例中,Animal类中定义了一个有参构造方法,用于初始化name属性。Cat类继承了Animal类并定义了一个age属性。在Cat类的构造方法中,使用 super 关键字调用了父类的有参构造方法来初始化name属性,然后初始化了子类的age属性。

需要注意的是,如果父类中只有有参构造方法,而没有无参构造方法,那么在子类的构造方法中必须显式调用父类的有参构造方法来初始化父类的属性。如果子类中没有显式地调用父类的构造方法,编译器会自动在子类的构造方法中插入一个隐式的 super() 调用,但是如果父类中没有无参构造方法,这个隐式的调用会导致编译错误。因此,在这种情况下,子类必须显式地调用父类的有参构造方法来初始化父类的属性。

相关文章

  • super

    注意:如果子类构造方法中没有显式调用父类构造方法,而父类又没有无参的构造方法,则编译出错。

  • Java面向对象

    1、子类实例化时会默认调用父类无参构造函数,如果父类没有无参构造函数,则需要子类构造函数显示调用父类有参构造函数 ...

  • 继承与组合复用

    继承 继承体系初始化顺序 创建子类对象时,默认先调用父类的无参构造方法,当父类中存在多个构造方法,但没有无参构造方...

  • java中构造方法的注意点

    默认的子类的构造方法中会自动调用父类的无参构造方法,如果手动调用有参的父类的构造方法的话,子类就不会在自动调用父类...

  • NO.13 父类没有空参构造的继承

    当子类继承父类时,如果父类中只写有参的构造方法而没写空参的构造方法,子类就继承不了 解决方法1:在父类中添加一个空...

  • 未提供与“**”的必须形参“**”对应的实参

    解决方法: 父类有参构造方法:

  • C++ 从入门到放弃 (Day-07)

    父类的构造函数 ◼ 子类的构造函数默认会调用父类的无参构造函数◼ 如果子类的构造函数显式地调用了父类的有参构造函数...

  • 子类父类初始化流程

    父类子类在初始化的是执行的流程①子类构造器会隐式调用父类的无参构造方法,如果子类显式利用super调用了父类的有参...

  • java049纠错

    答:编译报错 子类第一行如果没有调用父类的构造,系统就会默认使用父类的无参构造,而这道题里并没有写无参的构造方法所...

  • 5,super

    实例化一个类,会自动调用这个类的父类的构造方法 super调用父类的构造方法通常是有参的构造方法,参数和子类的构造...

网友评论

      本文标题:如果父类没有无参构造方法,该怎么办?

      本文链接:https://www.haomeiwen.com/subject/tdxgydtx.html