子类-父类构造方法调用问题

Posted sixgodbiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子类-父类构造方法调用问题相关的知识,希望对你有一定的参考价值。

当一个类继承了某个类时,在子类的构造方法里,super()必须先被调用;如果你没有写,编译器会自动调用super()方法,即调用了父类的构造方法;

这并不是创建了两个对象,其实只有一个子类Sub对象;之所以需要调用父类的构造方法是因为在父类中,可能存在私有属性需要在其构造方法内初始化;

 

在Java中,如果一个类没有定义构造方法,编译器会默认插入一个无参数的构造方法;但是如果一个构造方法在父类中已定义,在这种情况,编译器是不会自动插入一个默认的无参构造方法。

 

要修复这个错误,很简单:

1、在父类手动定义一个无参构造方法:

2、移除父类中自定义的构造方法

3、在子类中自己写上父类构造方法的调用;如super(value);

 

此文章是同博客一大神所写,我是在不知道为什么的时候,百度得到,下面是大神博客园的地址,请大家访问。

https://www.cnblogs.com/chenpi/p/5486096.html#_label0

以上是关于子类-父类构造方法调用问题的主要内容,如果未能解决你的问题,请参考以下文章

java子类构造中怎么调用父类的构造函数

子类为啥要调用父类的构造函数

子类都会首先调用父类的构造函数吗?

为啥java的子类中必须调用父类的构造方法

在java语言里如何在子类中调用父类的有参构造函数

java中,子类的构造器为啥要调用父类构造器?