请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......???
你不写默认是在第一行系统有会加上的。 创建子类对象时,调用子类构造方法之前会先调用父类构造方法
如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行,如果不在第一行,你写了个继承来的属性,那这时候没调用super,还没那个属性呢。 因为都是实例属性,必须先有实例,才能使用。
JAVA规定了super()要写在第一行,不写第一行会要报错!
构造子类,必须先构造父类,语句又是顺序执行的,所以放在第一位
构造方法是先执行父类,后执行子类的~super是父类方法!所以只能放在子类的构造方法中第一条语句位置 ,而其他位置则不可以