黑马程序员技术交流社区

标题: 为什么Java不支持多继承? [打印本页]

作者: 小邱    时间: 2015-3-28 14:28
标题: 为什么Java不支持多继承?
因为多继承会带来安全隐患:
当多个父类都定义了相同功能,但功能的主体内容不相同时,子类对象要运行哪个父类的方法具有不确定性。

举个例子:

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方法
        }
}


作者: minliang    时间: 2015-3-28 15:14
楼主不错啊,今天我也刚好看到这,但是毕老师说了,虽然类之间不能多继承,但是接口可以啊,弥补了C++多继承这种机制!
作者: 小邱    时间: 2015-3-28 23:02
minliang 发表于 2015-3-28 15:14
楼主不错啊,今天我也刚好看到这,但是毕老师说了,虽然类之间不能多继承,但是接口可以啊,弥补了C++多继 ...

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

顶一下。。。。。。
作者: minliang    时间: 2015-3-29 09:29
小邱 发表于 2015-3-28 23:02
现在对接口还不是很懂,一步一步来

恩恩,加油啊{:2_35:}
作者: 勇闯☀☀黑马    时间: 2015-3-29 10:01
一个儿子只有一个爹
作者: 胡几手    时间: 2015-3-29 10:06
蓝色的就哦我I来看。
作者: @G00DMaN    时间: 2015-3-29 13:00
学习了,谢谢
作者: 夏鹏    时间: 2015-3-29 13:54
很好,不错。。。
作者: ShadowDancer    时间: 2015-3-29 16:11
minliang 发表于 2015-3-28 15:14
楼主不错啊,今天我也刚好看到这,但是毕老师说了,虽然类之间不能多继承,但是接口可以啊,弥补了C++多继 ...

不是弥补  C++要比java强大很多  语言等级也比java高。。。
作者: qq471077336    时间: 2015-3-29 17:23
额,你这是呵呵
作者: Mr杨鹏    时间: 2015-3-29 20:07
来过,学习了
作者: longlongint    时间: 2015-3-29 20:13
接口完美解决了这个问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2