this()与super()面试
为什么“this(实参列表)”和“super(实参列表)“不能同时存在于同一个构造方法中?”
核心:
- 在一个类中,不可能所有的构造方法中都存在“this(实参列表)”,因为构造方法不可递归。
- 也就意味着,在一个类中的所有构造方法中,肯定至少有一个构造方法中存在“super(实参列表)”。
- super(实参列表)的作用:保证子类对象操作父类成员变量之前,就已经完成了对父类成员变量的初始化操作。
- this(实参列表)的作用:保证父类初始化的唯一性。创建子类对象的过程中,子类构造方法中只会调用一次父类的构造方法。
父类:
1 | /** |
子类:
1 | /** |
测试类:
1 | /** |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Star小客栈!
评论