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规范就是避免犯错误,这就是规定。

追问

没有道理不好记啊

JAVA中子类用SUPER调用父类的构造方法,一定要把SUPER放在第一行吗?
你不写默认是在第一行系统有会加上的。 创建子类对象时,调用子类构造方法之前会先调用父类构造方法,如果有父类一直追溯到Object类,它是祖宗类,哈哈 如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行...

java中super的使用有哪三种情况
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.class Base { Base() { System.out.println("Base"); }} public class Checket extends Base { Checket() { super();\/\/调用父类的构造方法,一定要放在方法的首个语句 System.out.println("Checket");...

java的super是什么意思?
首先,使用super调用构造函数时,必须要放在子类构造函数的第一行,同时,当子类构造函数没有指明调用哪个父类构造函数时,Java默认会调用父类的无参数构造函数。其次,父类私有成员无法通过super关键字访问,因为它们不能被继承。最后,当子类方法中使用super调用父类的方法时,注意不要出现死循环情况。子类...

在java语言里如何在子类中调用父类的有参构造函数
如果你是想在子类的构造函数中调用父类构造函数,则需要在子类的构造函数的函数体第一行(注释语句除外)使用:super(参数列表)的方式调用,该参数列表与父类有参构造函数声明的参数列表一致,如果你不是在子类构造函数中调用,则无法直接调用父类构造函数,这时创建一个父类对象(通过你想调用的有参父类...

JAVA中super()的用法?
当在子类的构造函数需要调用父类的构造函数时,实用super(),调用,当然super(),里面可以加形参(根据具体的父类的构造函数是否需要形参),这条语句必须写在子类构造函数的第一句

关于java的问题,为什么“Super必须是子类的第一条语句”?
java类构造方式的执行顺是先构造父类,然后构造子类。要初始化子类必须先初始其父类。父类构造器调用就是用Super()来实现的,所以必须是Super。当然你可以不写,但是编译器默认会先执行Super。

在java中子类若要继承父类,需要使用的关键字是什么
关键字是extends,语法结构:[修饰符] class <子类类名> <父类类名>{ ···\/\/类体定义 } super 是用来指明调用的是父类方法或指明操作的是父类的属性,而不是被子类覆盖的成员方法或被子类隐藏的属性。this代表的是当前对象自身。接口的定义的关键字是interface。实现的关键字是implements ...

为什么java会默认在构造器第一句加上super()
子类继承了父类,你必须要写上构造方法(假如父类有些)然后你不需要对父类构造方法进行改动,或者前面部分直接照搬,那么你就可以直接用super();注:父类里面构造方法如果有其他参数 class father{ public father(){} public father(int i){} } 回调构造函数想用第一个:super();第二个:...

java中的super是什么意思?
Java中的super是一个关键字,用于调用父类的构造方法、方法、属性等。在继承关系中,子类默认继承了父类的属性和方法,在子类中通过super关键字可以调用父类中的方法或属性,这也是实现继承的一种方式。super用于调用父类的构造方法。当子类继承了父类的构造方法时,在子类的构造方法中通过super关键字调用...

JAVA中的super()方法为什么在最前面
用在最前面的话,会先执行父类的代码,再执行你后面加上去的代码。如果super写在最后面,跑了一次你的代码,再执行父类的方法,那么你加上去的代码中如果改变了某个值,恰好父类中也修改了这个值,你代码写的内容不就被覆盖了吗?

相似回答