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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何竹冬 中级黑马   /  2013-1-5 13:38  /  2256 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何竹冬 于 2013-1-5 15:26 编辑

java多继承会出现安全问题 ,为什么接口可以多继承,不会出现安全问题吗?

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 这么多人回答给个加分吧

查看全部评分

6 个回复

倒序浏览
因为多继承容易带来安全隐患:当多个父类中定义了相同功能,但功能内容不同时,子类对象不确定运行哪一个,但是JAVA保留了这种机制,并用另一种提现形式来完全表示---多实现
回复 使用道具 举报
接口内的方法都是抽象的 不会出现冲突
回复 使用道具 举报
之所以没有多继承,是因为多继承容易引起混乱。就像现实中,一个儿子只能有1个父亲,有多个父亲的话就会乱套。比如说如果一个类继承了两个父类,父类中都一个run()方法;子类继承过来了,那么当调用时,到底用哪个父类的run()方法呢?
一个类只可继承自一个具体 class,但可实现多个接口。interface不涉及到实现细节,不与任何存储空间有关连。可以实现合并多个interface ,达到可向上转型为多种基类的目的。 新类可继承自一个具象class,其余继承都得是interfaces。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
高境 发表于 2013-1-5 13:46
之所以没有多继承,是因为多继承容易引起混乱。就像现实中,一个儿子只能有1个父亲,有多个父亲的话就会乱 ...

多谢,明白了。
回复 使用道具 举报
Java语言不支持一个类有多个直接的父类(多继承),但可以实现(implements)多个接口,间接的实现了多继承,但接口类却是个例外,接口是可以实现多继承的.打个比方:就拿父亲与儿子来说。父亲就相当于父类(father),儿子就相当于(son):

public class father {
        public void head(){
                System.out.println("父亲性别:男");
        }
       
        class son1 extends father{
                @Override
                public void head(){
                        System.out.println("儿子继承父亲的性别:男");
                }
        }
        class son2 extends father{
                @Override
                public void head(){
                        System.out.println("儿子继承父亲的性别:男");
                }
        }       
}
也就是说,儿子的父亲只有一个,而父亲的儿子可以有多个。至于接口可以实现多继承,网上有很多例子,我记得好像毕老师的视频好像也有说过。以上的例子说得比较范范,但也希望帮助到楼主。不明白的地方可以找我


评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
何竹冬 发表于 2013-1-5 13:49
多谢,明白了。

既然明白了,麻烦兄弟把贴改成已解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马