黑马程序员技术交流社区
标题:
【已解决】突然发现Java单继承的说法是不有点不周全?
[打印本页]
作者:
何拴绪
时间:
2012-6-4 11:21
标题:
【已解决】突然发现Java单继承的说法是不有点不周全?
本帖最后由 何拴绪 于 2012-6-4 17:53 编辑
Java中的类只能单继承,但是所有的类都是从Objeect继承而来,那么是不是也是可以说是多继承呢?至少说是可以继承两个类呢?
作者:
梁小波
时间:
2012-6-4 11:24
{:soso_e136:}单继承是只有一个父类!但他的祖先类含有很多!也就是说我们都只有一个爸爸,而我们的爸爸也只有一个爸爸;object是我们爷爷的爸爸。。。;
所以和单继承不冲突;有点想歪了;
作者:
唐辉辉
时间:
2012-6-4 11:29
只能继承一个父类,但可以多层继承。
作者:
赵玮_Tom
时间:
2012-6-4 11:43
“
多层
继承”和“
多重
继承”是不一样的。
楼主所言就是“多层”继承,子类继承父类,而父类还可以作为其他类的子类,其实可以把这种关系想为一条“继承链”,但针对某个具体的类而言,肯定只有一个“直接父类”;
“多重”继承就是指一个类有多于一个的父类,俗称“有两个亲生父亲”。
Java允许出现“多层”继承,而不允许出现“多重”继承;
再多说一点:对于Java中类和接口的实现继承关系,总结一下:
1
,类可以继承类(extends,单继承);
2
,类可以实现接口(implements,可以实现多个接口,根本原因就是接口中方法都是抽象的;而不能继承多个类的原因就是类中的方法不一定全是抽象的,如果多个父类存在同名方法,子类不知道到底覆写的是哪个方法;)
3
,接口可以继承接口(extends,可以继承多个接口。注:这里讲的继承,更确切的说是一种“扩展”,因为接口中都是全局常量和抽象方法。由于没有实际意义(完全可以把被继承的多个接口合并为一个接口),极为少用。
作者:
胡团乐
时间:
2012-6-4 11:47
本帖最后由 胡团乐 于 2012-6-4 11:55 编辑
Java中的类只能单继承,但是所有的类都是从Objeect继承而来,那么是不是也是可以说是多继承呢?至少说是可以继承两个类呢?
不能说 继承两个类, 可以说是多层继承,就像 B 继承A ,C 继承 B;
java用implements多实现,相当于c++的多继承
作者:
杨永峰
时间:
2012-6-4 11:49
这是多层继承。java中通过接口实现同时继承多个类,一个类可以继承一个类的同时实现多个接口。实现接口的本质还是继承,只不过条件苛刻一些。
作者:
金鑫
时间:
2012-6-4 11:50
子类 extends 父类
所有类的父类:Object,所有类都自动继承Object类
java属于单继承,要实现多继承只能使用接口;
作者:
包晗
时间:
2012-6-4 11:54
类都可以继承 2继承1,3继承2,4继承3 这样推理 可以无限扩大,外加有接口辅助
作者:
郭永岳
时间:
2012-6-4 17:37
本帖最后由 郭永岳 于 2012-6-4 17:39 编辑
Object并没有说明是任何类的直接父类。
例如:
1、如果你写个类A,没有extends任何类,隐含就是继承Object。
2、如果你A类继承自B,A就不extends Object了,但是你的B是extends Object的。
3、java中利用接口(interface )变相的来代替多继承,可以多继承接口。
所以,A也继承自Object,是一个间接父类。其中,
作者:
何拴绪
时间:
2012-6-4 17:52
谢谢各位回答,一时懵了多层继承和多继承搞错了。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2