课程
/后端开发
/Java
/Java入门第二季 升级版
请大神指点一下,为什么super() 方法 只能是放在子类的构造方法中第一条语句位置 ,而其他位置则不可以......???
2016-01-24
源自:Java入门第二季 升级版 9-7
正在回答
你不写默认是在第一行系统有会加上的。 创建子类对象时,调用子类构造方法之前会先调用父类构造方法
如果你不写第一行,默认你是可以写一个继承过来的属性赋值的,尽管你认为你可以不这样写,但是系统为了以防万一有人这么干,所以super要在第一行,如果不在第一行,你写了个继承来的属性,那这时候没调用super,还没那个属性呢。 因为都是实例属性,必须先有实例,才能使用。JAVA规定了super()要写在第一行,不写第一行会要报错!
构造子类,必须先构造父类,语句又是顺序执行的,所以放在第一位
构造方法是先执行父类,后执行子类的~super是父类方法!所以只能放在子类的构造方法中第一条语句位置 ,而其他位置则不可以
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
1 回答子类构造方法中super();
1 回答构造方法中能初始化其他类么?
1 回答如果子类中的构造方法是带参的,而父类又没有无参的构造方法,此时显式调用父类构造方法的super语句又怎么写呢?
4 回答如果父类中没有写构造方法,而子类中有构造方法
1 回答为什么我在类的方法中不能 方法名(); 调用类中的其他方法?