子类为什么要调用父类的构造函数

如题所述

在Java中,子类的构造过程中,必须 调用其父类的构造函数, 所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况. 构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出来,那么肯定要调用其构造方法,所以 第一个规则:子类的构造过程中,必须 调用其父类的构造方法 一个类,如果我们不写构造方法,那么编译器会帮我们加上一个默认的构造方法,所谓默认的构造方法,就是没有参数的构造方法,但是如果你自己写了构造方法,那么编译器就不会给你添加了 所以有时候当你new一个子类对象的时候,肯定调用了子类的构造方法,但是在子类构造方法中我们并没有显示的调用基类的构造方法,就是没写,如:super(); 并没有这样写,但是 第二个规则:如果子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构造方法 注意:如果子类的构造方法中既没有显示的调用基类构造方法,而基类中又没有默认无参的构造方法,则编译出错,所以,通常我们需要显示的:super(参数列表),来调用父类有参数的构造函数
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-07-26
第一个 子类要能访问父类继承过来的那一坨信息,必须有地方存储这一坨信息 java中的实现方式是在子类对象内部构建一个父类对象
第二个 为了保证子类中的任何地方都能访问父类,默认会在子类构造器第一行调用父类构造器去构造父类对象 保证子类在自己的构造器中能访问继承的那坨信息
第2个回答  2020-07-11
子类继承了父类,同样也继承了父类的成员变量。
所以系统需要先调用父类的构造方法,把父类里的东西创建好,再调用子类的。
第3个回答  2016-07-07
sun规定的,属于java的语法,没必要深究.话说回来有儿子必须得有父亲,一样个意思
第4个回答  2016-07-07
创建对象?
相似回答