![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
一个java问题,书上说super调用父类的构造方法,一定要放在方法的首个语句,这句话什么意思呀?
一个java问题,书上说super调用父类的构造方法,一定要放在方法的首个语句,这句话什么意思呀?为什么要放在首个语句呢?不放在首个语句会怎么样呢?各位懂得麻烦解释一下,...
一个java问题,书上说super调用父类的构造方法,一定要放在方法的首个语句,这句话什么意思呀?为什么要放在首个语句呢?不放在首个语句会怎么样呢?各位懂得麻烦解释一下,不胜感激:)
展开
展开全部
一个java问题,书上说super调用父类的构造方法,一定要放在方法的首个语句,这句话什么意思呀?
答:就是说,在子类的构造方法中,如果需要调用父类的构造方法,可以用super调用。
为什么要放在首个语句呢?
答:这是语法规则,跟游戏规则差不多,你不按这个规则你就输了。
不放在首个语句会怎么样呢?
答:同上,跟游戏规则差不多,你不按这个规则你就输了。你的代码不按语法规则,你程序就crash了。
答:就是说,在子类的构造方法中,如果需要调用父类的构造方法,可以用super调用。
为什么要放在首个语句呢?
答:这是语法规则,跟游戏规则差不多,你不按这个规则你就输了。
不放在首个语句会怎么样呢?
答:同上,跟游戏规则差不多,你不按这个规则你就输了。你的代码不按语法规则,你程序就crash了。
更多追问追答
追问
哦,那如果用super调用父类中除了构造方法意外的方法和成员变量是可以不用放在第一行的吧?
追答
是的
展开全部
具体到代码是这样
public class Hello {
public Hello() {
super();//这里
}
}
实际上这里如果你不写,默认也会调用这个
一般情况下,当父类中有多个构造器的时候,才需要在这里显式的调用父类的某个构造器
至于为什么只能在首位,你可以了解下java堆对象的构建,当你构建一个对象的时候,会先构建他的父对象部分,然后在构造本身
追问
谢谢你的回复哦
追答
即使你不显式的去掉父类构造器,代码执行过程中依旧会去调父类的默认构造器
如果你想验证这个问题也很简单,你写个父类,然后给他加一个带参的构造器,这时候当继承这个类的时候,你就必须调用父类的构造器
以前你不用写是因为父类有个默认无参构造器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询