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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁志兵 中级黑马   /  2013-4-11 22:18  /  2718 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 梁志兵 于 2013-4-12 21:09 编辑

java中支持单线继承,但是java中支持多层继承  这怎么理解?

13 个回复

倒序浏览
单继承是指每个类只可以继承一个其他的类,不能同时继承多个类。
但是可以在继承一个类后还以实现多个接口,这种情况就是java中实现多继承的方式。
而且还可以通过内部类的形式间接的实现多继承
回复 使用道具 举报
这个好理解啊,意思就是一个子类只能有一个父类,而一个父类可以有多个子类;而且每个子类也可以是其他类的父类。
回复 使用道具 举报
单继承和单层继承不同,就像

class person
{
}
class student extends person
{
}

class ABc extends student
{
}

这叫多层继承。


而多继承是

class Abc extends person ,student
{

}

这叫多继承

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
单继承:一个儿子只能有一个老爸,叫单继承
多重继承:一个儿子有一个老爸,还可以有一个爷爷,还可以有一个曾爷爷,叫多重,最后形成一个体系
回复 使用道具 举报
多层继承就可以构成一个继承体系。如果java支持多继承的话,当这个两父类都有同一个方法时,子类调用其方法,那jvm就不知道 运行那个了。java用多实现解决了这个问题。
回复 使用道具 举报
单线继承是为了避免方法的冲突,多层继承  这是对象的多态性
回复 使用道具 举报
Java中类只能是单继承的,而Java中的接口是可以多继承的;
为什么类不可以多继承呢?
因为:比如说子类a继承了父类b,又继承了父类c,又继承了父类d,而恰哈父类b,c,d中都有方法print(),那当我们创建一个a类的对象,并调用print()方法,那该调用哪个父类的喃?所以编译会出错;
那为什么接口可以多继承喃?
因为:接口中的方法全部是抽象方法,继承后必须现实现父类中的抽象方法,也就不存在问题了、、、
回复 使用道具 举报
补充一下,刚我看问题不仔细哈,原来是多层继承而不是多继承,
多层继承其原理也是一个子类只能继承一个父类,只是一代一代的,
回复 使用道具 举报
单继承,一个子类只能继承一个父类,。多层继承:一个子类只能继承一个父类,但是父类一可以继承一个父类,,一次类推。。。
回复 使用道具 举报
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中允许多重继承比如class A extends B  ,class B extends C  ,class C extends D ...
多层继承就是接口了,这个很easy的,但类是不允许被多层继承的
回复 使用道具 举报
王大斌 发表于 2013-4-11 22:47
单继承和单层继承不同,就像

class person

嗯谢谢讲解了
回复 使用道具 举报
love_java 发表于 2013-4-12 10:25
Java不支持多继承,但是通过一些巧妙的设计来达到和多继承同样的效果
通过接口、内隐类,继承、实现,互相 ...

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