首页 新闻 会员 周边 捐助

创建子类对象,调用构造函数先后顺序?

0
悬赏园豆:5 [已解决问题] 解决于 2018-05-27 01:58

子类变量创建子类对象时,有存在先调用子类构造函数,后调用父类构造函数的可能吗?

矢志不渝,不忘初心!的主页 矢志不渝,不忘初心! | 初学一级 | 园豆:156
提问于:2018-05-08 23:43
< >
分享
最佳答案
0

你不要把这个和初始化顺序混淆了,理论上是先父类构造方法,但是调用哪一个呢,要根据子类你实例化的子类构造器的第一行代码是否是super或者super(...),如果是就先执行指定的父类构造方法,否则就执行父类的默认构造方法。

其实实际顺序是先进入子类的构造方法,通过子类构造方法第一行代码是否是super去执行父类构造方法(这就是子类构造方法中的super()必须在第一行的原因),然后再执行子类构造方法中的代码

收获园豆:5
小光 | 小虾三级 |园豆:1766 | 2018-05-11 14:18
其他回答(1)
0

不能 标准规定先父类后子类 由深到浅 由左到右

nameless0910 | 园豆:202 (菜鸟二级) | 2018-05-08 23:54

但是我看到有的文章写得是,先调用子类的构造函数,如果子类构造函数显示调用了父类的构造函数,这样就不会调用父类其他构造函数了,

也就是说评论这句话前一半是错的?

@矢志不渝,不忘初心!: 

D

支持(0) 反对(0) 西漠以西 | 园豆:1675 (小虾三级) | 2018-05-09 09:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册