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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范泰洋 高级黑马   /  2012-7-18 00:14  /  2623 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java 多继承和多实现的区别

7 个回复

倒序浏览
一个类只能继承一个父类,但可以实现多个接口
回复 使用道具 举报
Java 只支持单继承 多实现 . 若想实现 多继承, 可以使用内部类
继承的必须是一个类, 此类不可终态, 可以是抽象类
实现的必须是接口. 可以实现多个接口
回复 使用道具 举报
首先要记住他们的关系。

类与类之间是继承关系,      是单继承
类与接口之间是实现关系,    可以多实现
接口与接口之间是继承关系,而且可以多继承。

说白了,多继承和多实现就是类与类和类与接口之间的区别。
接口可以被多实现,而类只能单继承,但是一个类可以实现多个接口。

评分

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

查看全部评分

回复 使用道具 举报
首先指出一个错误:java只支持单继承,但支持多层继承,支持多实现,可以实现多个接口
最大区别是:继承Thread类:线程代码存放在Thread子类run方法中
            实现Runnable接口:线程代码存放在接口子类run方法中
继承的同时也可以实现接口,对外提供了功能性的扩展,还可以被多线程操作,实现方式避免了单继承的局限性,建议定义线程时使用实现方式
其实Thread类本身也实现Runnable
回复 使用道具 举报
java只能单继承,没有多继承,一个类之能有一个父类,但是可以多实现!继承是指继承某个类,实现是指实现某个接口!

1、Java中一个类不能继承多个具体class。

2、一个类只可继承自一个具体 class,但可实现多个接口。
   interface不涉及到实现细节,不与任何存储空间有关连。
   可以实现合并多个 interface ,达到可向上转型为多种基类的目的。
   新类可继承自一个具象class,其余继承都得是interfaces。

3、outer class不可继承自多个具体 class,可在其内部设多个inner class,每个inner class都能各自继承某一实现类。
   inner class不受限于outer class 是否已经继承自某一实现类。

4、inner class可以说是多重继承问题的完整解决方案。
   inner class 可 “继承自多个具象或抽象类”。
   一个类不能继承自多个一般类。但我们可以让其内部的多个inner class各自继承某一实现类达到类似的目的。

评分

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

查看全部评分

回复 使用道具 举报
Java不支持多继承,但是通过一些巧妙的设计来达到和多继承同样的效果
通过接口、内隐类,继承、实现,互相配合,达到多继承的效果

1、Java中一个类不能继承多个具体class。

2、一个类只可继承自一个具体 class,但可实现多个接口。
   interface不涉及到实现细节,不与任何存储空间有关连。
   可以实现合并多个 interface ,达到可向上转型为多种基类的目的。
   新类可继承自一个具象class,其余继承都得是interfaces。

3、outer class不可继承自多个具体 class,可在其内部设多个inner class,每个inner class都能各自继承某一实现类。
   inner class不受限于outer class 是否已经继承自某一实现类。

4、inner class可以说是多重继承问题的完整解决方案。
   inner class 可 “继承自多个具象或抽象类”。
   一个类不能继承自多个一般类。但我们可以让其内部的多个inner class各自继承某一实现类达到类似的目的。

点评

与上面的雷同  发表于 2012-7-18 09:09
回复 使用道具 举报
1.java一个类一般只能继承一个父类,但是内部类可以实现多继承。
2.java的类与接口之间可以是多实现关系。
3.外部类不可以继承多个具体的类,但是可以再其内部定义多个内部类,这些内部类可以继承多个类。
4.内部类的多继承可以很好的 解决很多问题。

希望对你有帮助

评分

参与人数 2技术分 +1 黑马币 +5 收起 理由
韦念欣 + 1 赞一个!
丁岩 + 5 给力,真清楚

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马