java中为什么父类必须有无参构造方法才能被子类继承?

定义类时如果不明确写出构造方法那么就会默认一个,那为什么当子类继承父类的时候就又要明确写出了呢?请讲述一下这个机制的原理... 定义类时如果不明确写出构造方法那么就会默认一个,那为什么当子类继承父类的时候就又要明确写出了呢?
请讲述一下这个机制的原理
展开
 我来答
就烦条0o
2018-08-02 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46487
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
你在Xx类里定义了一个带参数的构造方法,那么这个Xx类就没有无参数的构造方法了。

子类在继承父类时,如果没有相同的带参构造方法,那么他就需要在其构造方法中明确的通过super()调用父类的带参构造方法,否则构造不出父类,从而也构造不出他自己了。

你如果在父类中写个不带参数的构造方法,就可以不用实现父类的带参构造方法了。
Christ_earl
推荐于2017-05-19 · TA获得超过1245个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:0
展开全部
不一定要明确写出的。
因为创建子类对象调用子类的构造方法的时候会先调用父类的构造方法,在子类的构造方法中调用父类的构造方法是用super(),如果没有写super(),则默认调用父类的无参构造方法。
但此时如果父类写了有参的构造方法,则必须在子类的构造器中写明
super(父类构造器参数);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
2015-06-15 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1688万
展开全部
不一定,如果父类中有多个构造方法的话,不需要明确指出无参构造方法。
解释:继承关系中子类中的方法必须调用父类的构造方法。如果父类中只有一个有参的构造方法,在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,没有写的话,会自动调用的,也就不会报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freish
2009-10-20 · TA获得超过2878个赞
知道大有可为答主
回答量:3153
采纳率:0%
帮助的人:2674万
展开全部
java中为什么父类必须有无参构造方法才能被子类继承?

这种说法是错误的!
public class Father {
public Father(String str) {
System.out.println(str);
}
}

public class Son extends Father {
public Son() {
super("F");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c519dd7
2009-10-20 · 超过23用户采纳过TA的回答
知道答主
回答量:83
采纳率:100%
帮助的人:63.1万
展开全部
同意以上观点,所以再定义类的时候,最好先加个空的构造方法,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式