【java 构造函数】为什么子类一定要访问父类中的构造函数
2017-03-09 08:37
225 查看
http://bbs.itheima.com/forum.php?mod=viewthread&tid=123305&page=1#pid791045
原因:
子类的所有构造函数中的第一行,其实都有一条隐身的语句super();
解释:
super()表示父类的构造函数并会调用于参数相对应的父类中的构造函数。子类中,它在调用父类中空参数的构造函数。因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程。
特注:
1、子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();
2、若父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数;
3、若子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。
原因:
子类的所有构造函数中的第一行,其实都有一条隐身的语句super();
解释:
super()表示父类的构造函数并会调用于参数相对应的父类中的构造函数。子类中,它在调用父类中空参数的构造函数。因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程。
特注:
1、子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();
2、若父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数;
3、若子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数。
相关文章推荐
- java基础:在子类的构造函数中为什么必须调用父类的构造函数(与转型)
- java中子类继承父类时是否继承构造函数呢?
- Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序
- Java中子类和父类的构造函数?
- Java中子类通过super来访问父类的成员变量
- java 父类访问子类对象的实例变量 继承过程中的执行顺序
- java中子类继承父类时是否继承构造函数
- java 父类子类静态成员,实例成员,构造函数初始化的顺序
- java一种极端情况下出现父类访问子类的实例变量的情况
- JAVA中父类与子类静态代码块、非静态代码块、构造函数的加载顺序
- java-为什么可以这样访问父类的中的变量?
- 为什么java中子类重写父类的方法时声明抛出异常不能比父类范围大
- 子类继承父类 构造函数访问问题
- java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题
- java中子类继承父类时是否继承构造函数
- 异常父类为什么java中子类重写父类的方法时声明抛出异常不能比父类范围大
- java父类、子类的构造函数、静态初始化、非静态初始化顺序
- java 父类子类静态成员,实例成员,构造函数初始化的顺序
- java 中关于子类调用父类构造函数问题
- 为何Java中子类重写方法的访问权限不能低于父类中权限