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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小邱 中级黑马   /  2015-3-28 14:28  /  1093 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为多继承会带来安全隐患:
当多个父类都定义了相同功能,但功能的主体内容不相同时,子类对象要运行哪个父类的方法具有不确定性。

举个例子:

class Fu
{
        void show()
        {
                System.out.println("Fu_show");
        }
}

class Fu2
{
        void show()
        {
                System.out.println("Fu2_show");
        }
}

class Zi extends Fu,Fu2
{}

class Test
{
        public static void main(String[] args)
        {
                Zi z=new Zi();
                z.show();                       //假设编译通过,也不能确定子类对象z调用的是哪个父类的show方法
        }
}

14 个回复

倒序浏览
楼主不错啊,今天我也刚好看到这,但是毕老师说了,虽然类之间不能多继承,但是接口可以啊,弥补了C++多继承这种机制!
回复 使用道具 举报
minliang 发表于 2015-3-28 15:14
楼主不错啊,今天我也刚好看到这,但是毕老师说了,虽然类之间不能多继承,但是接口可以啊,弥补了C++多继 ...

现在对接口还不是很懂,一步一步来
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
如果一个类继承了两个类,且这两个类中有相同的函数,这时候子类的对象在调用该方法时就不知道调用那一个。
回复 使用道具 举报
风飘逸 发表于 2015-3-28 23:30
如果一个类继承了两个类,且这两个类中有相同的函数,这时候子类的对象在调用该方法时就不知道调用那一个。 ...

顶一下。。。。。。
回复 使用道具 举报
小邱 发表于 2015-3-28 23:02
现在对接口还不是很懂,一步一步来

恩恩,加油啊{:2_35:}
回复 使用道具 举报
一个儿子只有一个爹
回复 使用道具 举报
蓝色的就哦我I来看。
回复 使用道具 举报
学习了,谢谢
回复 使用道具 举报
很好,不错。。。
回复 使用道具 举报
minliang 发表于 2015-3-28 15:14
楼主不错啊,今天我也刚好看到这,但是毕老师说了,虽然类之间不能多继承,但是接口可以啊,弥补了C++多继 ...

不是弥补  C++要比java强大很多  语言等级也比java高。。。
回复 使用道具 举报
额,你这是呵呵
回复 使用道具 举报
来过,学习了
回复 使用道具 举报
接口完美解决了这个问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马