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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何拴绪 于 2012-6-4 17:53 编辑

Java中的类只能单继承,但是所有的类都是从Objeect继承而来,那么是不是也是可以说是多继承呢?至少说是可以继承两个类呢?

9 个回复

倒序浏览
{:soso_e136:}单继承是只有一个父类!但他的祖先类含有很多!也就是说我们都只有一个爸爸,而我们的爸爸也只有一个爸爸;object是我们爷爷的爸爸。。。;
所以和单继承不冲突;有点想歪了;
回复 使用道具 举报
只能继承一个父类,但可以多层继承。
回复 使用道具 举报
多层继承”和“多重继承”是不一样的。
楼主所言就是“多层”继承,子类继承父类,而父类还可以作为其他类的子类,其实可以把这种关系想为一条“继承链”,但针对某个具体的类而言,肯定只有一个“直接父类”;
“多重”继承就是指一个类有多于一个的父类,俗称“有两个亲生父亲”。
Java允许出现“多层”继承,而不允许出现“多重”继承;
再多说一点:对于Java中类和接口的实现继承关系,总结一下:
1,类可以继承类(extends,单继承);
2,类可以实现接口(implements,可以实现多个接口,根本原因就是接口中方法都是抽象的;而不能继承多个类的原因就是类中的方法不一定全是抽象的,如果多个父类存在同名方法,子类不知道到底覆写的是哪个方法;)
3,接口可以继承接口(extends,可以继承多个接口。注:这里讲的继承,更确切的说是一种“扩展”,因为接口中都是全局常量和抽象方法。由于没有实际意义(完全可以把被继承的多个接口合并为一个接口),极为少用。
回复 使用道具 举报
本帖最后由 胡团乐 于 2012-6-4 11:55 编辑

Java中的类只能单继承,但是所有的类都是从Objeect继承而来,那么是不是也是可以说是多继承呢?至少说是可以继承两个类呢?
不能说 继承两个类, 可以说是多层继承,就像 B 继承A ,C 继承 B;
java用implements多实现,相当于c++的多继承

点评

抬头看楼上  发表于 2012-6-4 11:51
回复 使用道具 举报
这是多层继承。java中通过接口实现同时继承多个类,一个类可以继承一个类的同时实现多个接口。实现接口的本质还是继承,只不过条件苛刻一些。
回复 使用道具 举报
子类 extends 父类

所有类的父类:Object,所有类都自动继承Object类

java属于单继承,要实现多继承只能使用接口;
回复 使用道具 举报
类都可以继承  2继承1,3继承2,4继承3  这样推理 可以无限扩大,外加有接口辅助   
回复 使用道具 举报
本帖最后由 郭永岳 于 2012-6-4 17:39 编辑

Object并没有说明是任何类的直接父类。
例如:
1、如果你写个类A,没有extends任何类,隐含就是继承Object。
2、如果你A类继承自B,A就不extends Object了,但是你的B是extends Object的。
3、java中利用接口(interface )变相的来代替多继承,可以多继承接口。
所以,A也继承自Object,是一个间接父类。其中,



回复 使用道具 举报
谢谢各位回答,一时懵了多层继承和多继承搞错了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马