为了账号安全,请及时绑定邮箱和手机立即绑定

请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......

请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......???

正在回答

3 回答

你不写默认是在第一行系统有会加上的。  创建子类对象时,调用子类构造方法之前会先调用父类构造方法

如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行,如果不在第一行,你写了个继承来的属性,那这时候没调用super,还没那个属性呢。 因为都是实例属性,必须先有实例,才能使用。
JAVA规定了super()要写在第一行,不写第一行会要报错!

0 回复 有任何疑惑可以回复我~

构造子类,必须先构造父类,语句又是顺序执行的,所以放在第一位

0 回复 有任何疑惑可以回复我~

构造方法是先执行父类,后执行子类的~super是父类方法!所以只能放在子类的构造方法中第一条语句位置 ,而其他位置则不可以

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信