为什么在实例化子类的对象的时候会调用先调用父类的构造函数
2016-08-12 18:26
239 查看
1、为什么在实例化子类的对象的时候会调用先调用父类的构造函数?
答:因为子类继承父类之后,获取到了父类的内容(属性/字段),而这些内容在使用之前必须先初始化,所以必须先调用父类的构造函数进行内容的初始化.
2、在什么地方调用基类的构造函数?
答:在子类的构造函数中的第一行会隐士的调用 super();子句,即调用了父类的构造函数
如果父类里面没有定义参数为空的构造函数,那么必须在子类的构造函数的第一行显示的调用super(参数);语句调用父类当中其它的构造函数.
如果子类当中的构造函数的第一行写了this();那么就隐士的那个super();语句就会消失..因为super()和this()都只能定义在构造函数的第一行.
特别提醒:super();必须出现在构造函数的第一行.
答:因为子类继承父类之后,获取到了父类的内容(属性/字段),而这些内容在使用之前必须先初始化,所以必须先调用父类的构造函数进行内容的初始化.
2、在什么地方调用基类的构造函数?
答:在子类的构造函数中的第一行会隐士的调用 super();子句,即调用了父类的构造函数
如果父类里面没有定义参数为空的构造函数,那么必须在子类的构造函数的第一行显示的调用super(参数);语句调用父类当中其它的构造函数.
如果子类当中的构造函数的第一行写了this();那么就隐士的那个super();语句就会消失..因为super()和this()都只能定义在构造函数的第一行.
特别提醒:super();必须出现在构造函数的第一行.
相关文章推荐
- 为什么在创建子类对象的时候会调用父类的构造函数
- 子类继承父类,那么子类实例化时对象调用的是父类还是子类的构造函数?
- 父类中调用子类构造函数实例化子类的实现
- 父类中调用子类构造函数实例化子类的实现
- 创建子类对象会调用父类的初始化方法,而不只是构造函数
- java基础:在子类的构造函数中为什么必须调用父类的构造函数(与转型)
- 子类new对象的时候,如果子类没有构造器那么他会执行父类的构造函数
- 父类中调用子类构造函数实例化子类的实现
- 实例化对象的时候。其实就是调用构造函数
- 父类和子类中对于构造函数的调用问题
- 基类、子类、数据成员类对象三者 构造函数 的调用顺序
- 子类对象初始化过程中构造函数调用的若干规则
- C#中通过类来继承两个接口,父类实例化接口中的方法,子类继承父类,调用方法
- 在子类中调用父类的带参数的构造函数
- 在子类中调用父类的带参数的构造函数
- c# 的继承,继承类实例化的时候,会先调用基类的构造函数,然后再调用自己的构造函数,base 的用法,有override和没有override的区别
- java继承时,实例化子类,是否会默认调用父类构造方法
- C++子类显示调用父类的构造函数
- 子类实例化时默认调用父类的默认构造器
- 子类对象初始化过程中构造函数调用的若干规则