望各位大神给指点指点

本人小白一枚,初学java,这段代码不明白是什么问题,请各位详细的说说,谢谢。图片说明

子类 构造器 被调用之前 不管写没写 都会先调用父类的无参构造器
你的父类没有写无参构造器 就报错了

子类构造器中要调用父类构造器。你的子类中有两个构造器,在第二个中你通过super(300)调用了父类的构造器,这是正确的。但是在第一个中,你没显式
调用,所以会默认调用父类的无参构造器,可你父类中没有定义,所以报错了

你把你父类中的注释放开 就ok了

superClass作为父类,用一个有参构造;SubClass作为子类,有有参构造和午餐够赵,在new对象的时候,会调用父类的无参构造,但是你的父类无参够造被注释了,所以会报错。

父类加无参,或者子类有参的第一个删了。。原因子类有参的第一个构造器第一行其实是sup();它要先去找父类无参构造器,发现没有(因为
定义了有参构造器,无参会被覆盖),只有一个带有参数的,然后很抱歉只能说我找了一个参数长度不是0的构造器- -!!!

学习一下关键字super的用法吧

编译的时候已经提示你了啊,17行你的有参构造器调用了父类无参构造器,但是在父类中只有有参的;
原因如下:
一个基本的认知:“子类构造器必须继承父类的构造器”(至于为什么和为什么必须放到第一行,这里不展开,有兴趣可以深入了解),
子类构造器中若没有明确调用super()或this(),则编译程序会自动帮它生成一个,但是默认帮你生成无参的;
因此你编译的时候,由于父类没有无参构造器,编译报错。

当然楼上说的父类加上无参构造器可以解决报错问题,
但是如果遇到父类确实没有无参构造方法时候(比如父类是别人写的第三方jar包中的,你无法更改父类),在你的子类构造函数中第一行加上super(一个整数);同样可以