关于java中子类继承时,父类为什么要有无参构造器?
相信各位小伙伴在类的继承中都遇到过这个问题,为什么在父类没有无参构造器,子类中会报错的情况,看下图
这里为什么会出错呢?java默认的在调用子类构造方法前先调用父类的构造方法,如果你没有指定调用父类的哪个构造方法,那么java默认调用父类无参数的构造方法。所以有以下几种解决方法
以上述图片代码为例
- 在父类构造一个无参的构造方法
Person()
{} - 去显示的调用父类的带参构造器
public Studen1()
{
super(“张三”,“男”,20);
} - 用this去调用本类的其他构造方法,但前提是被调用的构造方法必须访问了父类的构造方法。