JAVA中子类用SUPER调用父类的构造方法,一定要把SUPER放在第一行吗?

如题所述

你不写默认是在第一行系统有会加上的。 创建子类对象时,调用子类构造方法之前会先调用父类构造方法,如果有父类一直追溯到Object类,它是祖宗类,哈哈

如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行,如果不在第一行,你写了个继承来的属性,那这时候没调用super,还没那个属性呢。 因为都是实例属性,必须先有实例,才能使用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-23
对!如果你是用super调用父类的无参构造方法那么你可以不写、因为他会隐藏一个super
(),如果是调用有参构造方法那么就一定要写还要带参数,JAVA规定了super()要写在第一行,不写第一行会要报错!楼主可以试一试就知道了
第2个回答  2012-12-21
如果一个类extends他的父类,super()方法一定要写在第一行,要么不写来自:求助得到的回答
第2个回答  2012-12-21
没有强制要求,但是一般都放在第一行。

调用父类的构造方法,只是对父类的属性,进行初始化。放到什么位置其实都可以。
第3个回答  2012-11-30
是的,不然写了也是白写,你一继承super()之前写的不是就没有意义了。追问

但SUPER只是继承自己没有的啊,只要调用的时候顺序关系对了不就行了

追答

什么意思?不要钻牛角尖,你写第一行又怎么样嘛,java规范就是避免犯错误,这就是规定。

追问

没有道理不好记啊

相似回答