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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何武 中级黑马   /  2013-7-27 17:59  /  1325 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜光 于 2013-7-28 09:19 编辑

java中无法多继承的原因是因为方法名相同而产生的不确定性,如果程序中不会出现方法名相同的情况是否能够多继承?

9 个回复

倒序浏览
如果想用extends的话,那只能逐个继承,不如说
class A{}
class B extends A{}
如果C类既想继承A也想继承B,那么就
class C extends B{}
所以说利用接口implements的方法会更好。
回复 使用道具 举报
本帖最后由 toShareBeauty 于 2013-7-27 19:27 编辑

就算木有重名,当然也不可以多继承
如果说方法的不安全性是不支持多继承的一方面,那么更重要的一方面就是 java 把继承这种机制分为主次,主就是 extends ,次就是 implements,意思是说类必须有且只有一个主的分类,用 extends。


我们看待事物的时候是可以从多个角度去看待的,那么可能就有  多个  类的纵向关系,但是 java 里面给这多纵向关系分了主次,主用 extends ,次用 implements ,这才是 java 单继承的精髓。你可以在生活中好好体验一下。

回复 使用道具 举报
java中不支持多继承,只支持单继承;java用接口interface代替了C++中的多继承机制。这样就避免了C++多继承机制带来的麻烦。
如:在C++中  
class A{};  
class  B :public A {};
class C :public  B{};
class D:public B,public C{};
D d = new D();
那么在内存中该分配一份class A还是两份呢,还有这个A到底是从B继承来还是C呢,这就很麻烦了。
java认为多继承太麻烦了,所以就用接口代替了C++中繁琐的多继承。
回复 使用道具 举报
明明都说了java不支持多extends,你偏偏要这样做,这不是钻牛角尖么,多继承是用implements实现。{:soso_e141:}
回复 使用道具 举报
用接口可以多继承!普通的类与类没法多继承!
回复 使用道具 举报
不出现同名也不可以。
java中不支持多继承,支持多层继承,比如A继承B,B继承C。
java中用接口interface代替了C++中的多继承机制。
回复 使用道具 举报
....你把多继承的意思弄反了吧。如果方法名不同,那就是两个方法了,两个方法继承同一个父类是可以的,但和多继承没关系。java中多继承是绝对没有的,无论是你第一句写的语法限制,还是多继承本身风险。但这些真无关紧要,因为多继承的好处可以通过实现多个接口来达到,何乐而不为呢
回复 使用道具 举报
java 不能多继承。只能单继承,但是可实现多接口。 单继承子类具备其父类的性质, 这种关系是单一性的。比如我是甲的儿子,不能同时还是乙的儿子。 单继承易读 易维护 语义清晰 逻辑清楚 。
而接口则不同 接口只定义一些公共行为 比如有两个接口 一个定义了跑这个动作 另一个定义了走这个动作 人这个类就可以同时实现这两个接口所定义的行为 。
回复 使用道具 举报
java语言中:java只支持单继承,不支持多继承。因为多继承容易带来安全隐患。当多个父类中定义了相同功能,但功能内容不同时,子类不知道继承哪一个。但是java保留了这种机制,并用另一种体现形式来表示,叫做多实现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马