A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

哪位大神可以解释一下“为什么一个类可以多实现接口,而不能多继承呢?”
感激不尽!

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 楼主加油!

查看全部评分

11 个回复

倒序浏览
如果可以多继承的话,两个父类中有相同的函数,但函数主题不同,那么子类如果没有复写父类的方法,在子类调用该方法时,到底是执行哪个父类的方法内,这样就造成了混乱,所以不可以多继承,但是接口中的方法都是抽象的,子类必须复写,所以可以多实现

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
JAVA基础班上了十天课的来回答一下:一个类可以实现多接口,because接口成员均为常量和抽象方法。即使不同接口存在同名抽象方法,并不会造成方法无法实现的情况。继承:子类继承父类。如果父类中存在同名非抽象方法但不同实现,多继承情况下出现同时继承同名方法不同实现的情况。编译无法通过。
回复 使用道具 举报
因为多继承容易带来安全隐患,当多个父类中定义了相同功能但内容功能不同时,子类对象不确定要运行哪一个。
回复 使用道具 举报
楼上说的都不错,我就不添乱了
回复 使用道具 举报
2#的回答的不错。
回复 使用道具 举报
shileishihai 发表于 2014-10-12 00:05
JAVA基础班上了十天课的来回答一下:一个类可以实现多接口,because接口成员均为常量和抽象方法。即使不同 ...

“子类继承父类。如果父类中存在同名非抽象方法但不同实现”中不同实现你的意思是重载吗?
回复 使用道具 举报
因为多继承容易带来安全隐患,当·多个父类定义了相同的功能但功能内容不同时,子类对象不确定要运行哪一个
回复 使用道具 举报
yangyujoe 发表于 2014-10-12 02:17
“子类继承父类。如果父类中存在同名非抽象方法但不同实现”中不同实现你的意思是重载吗? ...

不是重载,是重写。
回复 使用道具 举报
java-01 发表于 2014-10-12 00:01
如果可以多继承的话,两个父类中有相同的函数,但函数主题不同,那么子类如果没有复写父类的方法,在子类调 ...

解释的很好,领教啦!谢谢
回复 使用道具 举报
嗯,,很给力,上面说得对
回复 使用道具 举报
怕增加动态绑定的复杂度。当子类覆盖父类的实力方法,或者隐藏父类的成员变量及静态方法时,JAVA虚拟机采用不同的绑定规则。如果还允许一个类有多个直接的父类,那么会使绑定规则变得更加复杂。而接口中只有抽象方法,没有实例变量和静态方法,只有接口的实现类才会实现接口的抽象方法,这样的话,多实现也不会增加动态绑定的复杂度!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马