子类都会首先调用父类的构造函数吗?
答案:3 悬赏:70
解决时间 2021-03-02 11:38
- 提问者网友:久伴不朽
- 2021-03-01 19:07
子类都会首先调用父类的构造函数吗?
最佳答案
- 二级知识专家网友:许你一世温柔
- 2021-03-01 20:04
在JAVA中,我们通常把C中的函数叫做方法。对于子类调用父类的构造方法可以做出如下解释: 子类无条件地继承父类的不含参数的构造方法。
如果子类自己没有构造方法,则它将继承父类的无参数构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行继承自父类的无参数构造方法,然后再执行自己的构造方法。
对于父类含参数的构造方法,子类可以通过在自己的构造方法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。
如果子类自己没有构造方法,则它将继承父类的无参数构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行继承自父类的无参数构造方法,然后再执行自己的构造方法。
对于父类含参数的构造方法,子类可以通过在自己的构造方法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。
全部回答
- 1楼网友:单身小柠`猫♡
- 2021-03-01 22:10
在java中,子类的构造过程中,必须 调用其父类的构造函数, 是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的? 这样: 当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部, 所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况. 构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出来,那么肯定要调用其构造方法,所以 第一个规则:子类的构造过程中,必须 调用其父类的构造方法 一个类,如果我们不写构造方法,那么编译器会帮我们加上一个默认的构造方法,所谓默认的构造方法,就是没有参数的构造方法,但是如果你自己写了构造方法,那么编译器就不会给你添加了 所以有时候当你new一个子类对象的时候,肯定调用了子类的构造方法,但是在子类构造方法中我们并没有显示的调用基类的构造方法,就是没写,如:super(); 并没有这样写,但是 第二个规则:如果子类的构造方法中没有显示的调用基类构造方法,则系统默认调用基类无参数的构造方法 注意:如果子类的构造方法中既没有显示的调用基类构造方法,而基类中又没有默认无参的构造方法,则编译出错,所以,通常我们需要显示的:super(参数列表),来调用父类有参数的构造函数 看我屏幕,听我讲课!
- 2楼网友:花一样艳美的陌生人
- 2021-03-01 21:35
是的。
通俗点说,就是要想生出来孩子,必须先把孩子他爹生出来
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯