导航:首页 > 编程语言 > java支持多继承吗

java支持多继承吗

发布时间:2021-12-09 06:27:17

java支持多重继承

其实你说的多重继承就是Java中所说的接口实现

如果确切的说,Java只存在单继承,也就是说,一个类最多只能够有一个基类,通过extends实现。
如果想实现"多继承",就应该通过接口的形式实现,通过实现interface接口可以实现"多继承"!

Ⅱ java类是否可以多继承,怎么实现多继承

在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解。

刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有方法名,没有方法体的东西,我实现它又有什么用呢?我从它那什么也得不到,除了一些方法名,我直接在具体类里加入这些方法不就行了吗?

为什么一定要有抽象类这个概念?为什么就不能把这个父类写成一个具体的类,子类再继承它不就可以了吗?何必弄一个抽象类出来,还要弄一些没有方法体的抽象方法,弄得又象接口又象类的,让人捉摸不定。

当我开始学习java设计模式,真正走进面向对象设计的大门之后,我才发现,自己对面向对象设计的理解原来是那么的片面,那么的肤浅,根本就没有真正理解面向对象思想的精髓,在某一种程度上还受着面向过程的影响,以为弄出了一个个类,就算是面向对象了,而其实还是被过程所驱使着。

我还是说说我现在对面向对象思想的理解吧,不一定正确全面,但我想应该还算是比以前略有进步吧。

面向对象思想,我觉得最关键的就是抽象。

一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体的业务实现了。当你需要再开发另一个相近的项目时,你以前的抽象层说不定还可以再次利用呢,面对对象的设计,复用的重点其实应该是抽象层的复用,而不是具体某一个代码块的复用,是不是一下子感觉自己对复用理解的高度又上升了一层?^_^

说到了抽象,我就不能不提到曾让我头痛的Java接口和Java抽象类了,这也是本文我想说的重点。

既然面向对象设计的重点在于抽象,那Java接口和Java抽象类就有它存在的必然性了。

Java接口和Java抽象类代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。OOP面向对象的编程,如果要提高程序的复用率,增加程序的可维护性,可扩展性,就必须是面向接口的编程,面向抽象的编程,正确地使用接口、抽象类这些太有用的抽象类型做为你结构层次上的顶层。

Java接口和Java抽象类有太多相似的地方,又有太多特别的地方,究竟在什么地方,才是它们的最佳位置呢?把它们比较一下,你就可以发现了。

1、Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。
如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。

2、一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的等级结构中,而由于Java语言的单继承性,所以抽象类作为类型定义工具的效能大打折扣。
在这一点上,Java接口的优势就出来了,任何一个实现了一个Java接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个Java接口,从而这个类就有了多种类型。

3、从第2点不难看出,Java接口是定义混合类型的理想工具,混合类表明一个类不仅仅具有某个主类型的行为,而且具有其他的次要行为。

4、结合1、2点中抽象类和Java接口的各自优势,具精典的设计模式就出来了:声明类型的工作仍然由Java接口承担,但是同时给出一个Java抽象类,且实现了这个接口,而其他同属于这个抽象类型的具体类可以选择实现这个Java接口,也可以选择继承这个抽象类,也就是说在层次结构中,Java接口在最上面,然后紧跟着抽象类,哈,这下两个的最大优点都能发挥到极至了。这个模式就是“缺省适配模式”。
在Java语言API中用了这种模式,而且全都遵循一定的命名规范:Abstract +接口名。

Java接口和Java抽象类的存在就是为了用于具体类的实现和继承的,如果你准备写一个具体类去继承另一个具体类的话,那你的设计就有很大问题了。Java抽象类就是为了继承而存在的,它的抽象方法就是为了强制子类必须去实现的。

使用Java接口和抽象Java类进行变量的类型声明、参数是类型声明、方法的返还类型说明,以及数据类型的转换等。而不要用具体Java类进行变量的类型声明、参数是类型声明、方法的返还类型说明,以及数据类型的转换等。

我想,如果你编的代码里面连一个接口和抽象类都没有的话,也许我可以说你根本没有用到任何设计模式,任何一个设计模式都是和抽象分不开的,而抽象与Java接口和抽象Java类又是分不开的。

理解抽象,理解Java接口和抽象Java类,我想就应该是真正开始用面向对象的思想去分析问题,解决问题了吧。

Ⅲ java什么情况下用接口可以多继承吗

定义接口可以解决JAVA中无法多重继承的问题。而且可以实现“多态” JAVA只支持单一继承,为弥补这一点,JAVA引入了接口这个概念,简单的说接口是对某个事物对外提供的一些功能 的声明

Ⅳ java语言可以通过什么实现多继承

(1)通过实现多个接口。

(2)通过内部类实现多重继承。

publicclassFather{
publicintstrong(){
return9;
}
}

publicclassMother{
publicintkind(){
return8;
}
}

publicclassSon{

/**
*内部类继承Father类
*/
classFather_1extendsFather{
publicintstrong(){
returnsuper.strong()+1;
}
}

classMother_1extendsMother{
publicintkind(){
returnsuper.kind()-2;
}
}

publicintgetStrong(){
returnnewFather_1().strong();
}

publicintgetKind(){
returnnewMother_1().kind();
}
}

Ⅳ java 可不可以继承多个类

不能。抄
一个类不能直接继承袭多个类,java是单继承语言。
比如说这样:class A extends B,C 不能这样写,因为java不支持多继承。
但是可以像下面这样实现继承多个类:class A extends B,class C extends A,这样C就同时继承了B和A两个类了。

Ⅵ java为什么不支持多继承

类定义属性和方法 描述某一类事物的抽象
而接口定义的是行为 并不限于任何具体意向

按照逻辑上来说 单继承更明确 一个子类就应该是其父类代表的事物中的某个更具体的类别 不应该即是这种东西又是那种东西
而从实用角度上来说 单继承易读 易维护 语义清晰 逻辑清楚

而接口则不同 接口只定义一些公共行为 比如有两个接口 一个定义了跑这个动作 另一个定义了走这个动作 人这个类就可以同时实现这两个接口所定义的行为

类对接口的implements称作实现 不能叫做继承

当然 接口可以多继承接口 因为接口只定义行为 并不包含类别的含义 不指代具体的某类事物 而且 从语义上来说 接口对接口的继承称之为扩展更为合适

Ⅶ java 支持多继承吗

类定义属性和方法
描述某一类事物的抽象
而接口定义的是行为
并不限于任何具体意向
按照逻辑上来说
单继承更明确
一个子类就应该是其父类代表的事物中的某个更具体的类别
不应该即是这种东西又是那种东西
而从实用角度上来说
单继承易读
易维护
语义清晰
逻辑清楚
而接口则不同
接口只定义一些公共行为
比如有两个接口
一个定义了跑这个动作
另一个定义了走这个动作
人这个类就可以同时实现这两个接口所定义的行为
类对接口的implements称作实现
不能叫做继承
当然
接口可以多继承接口
因为接口只定义行为
并不包含类别的含义
不指代具体的某类事物
而且
从语义上来说
接口对接口的继承称之为扩展更为合适

Ⅷ java类是否可以多继承怎么实现多继承

java类不可以多继承。

Ⅸ 为什么Java不支持多重继承

java语言为了可维护性高及清晰的设计思想, 最终不采用多重继承。如果有多重继承,一个子类同时继承两个父类想用的行为,最终最终采用那一个继承呢?所以为了简化避免这种问题的产生,最终不支持多继承。如果希望有这层关系的产生,可以采用接口实现,由于接口只有方法声明而且没有提供任何实现,因此只有一个特定方法的实现,因此不会有任何歧义。

阅读全文

与java支持多继承吗相关的资料

热点内容
云学app哪个好 浏览:498
因为什么对编程感兴趣 浏览:161
linux获取内核时间 浏览:926
iphonehome键变硬 浏览:32
所有文件onion 浏览:841
word写作格式 浏览:1
网页中文件及文件夹的命名规则 浏览:105
水蜜桃电子书txt全集下载 浏览:850
豫剧电影农村片 浏览:26
javaprivate类继承 浏览:487
电脑文件历史记录干什么用 浏览:136
如何去掉文件的只读属性 浏览:403
水沫缘浅的全部作品集下载 浏览:575
免费电影在线观看网站 浏览:697
涨奶挤出来的母乳电影 浏览:897
催眠控制类百合 浏览:13
编程属于哪个发票范围 浏览:207
ipadqq怎么下载群文件 浏览:272
投屏流畅的电影网站 浏览:506
手机书包网 浏览:694

友情链接