Java为什么不支持多继承(为什么java只能单继承)

佚名- 2023-08-20 17:47:15

纯纯纯,纯干货啊,java的动态代理原理及解析

本篇文章给大家谈谈Java为什么不支持多继承,以及多重继承不建议7使用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

  1. 面向对象编程中的”继承”的概念是指什么
  2. 什么是单重继承,多重继承
  3. java语言可以通过什么实现多继承
  4. Java为什么不支持多继承

面向对象编程中的”继承”的概念是指什么

是指:派生自同一个基类的不同类的对象具有一些共同特征“继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。有些编程语言支持多重继承,即一个子类可以同时有多个父类,比如C++编程语言;而在有些编程语言中,一个子类只能继承自一个父类,比如Java编程语言,这时可以利用接口来实现与多重继承相似的效果。在c++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。

什么是单重继承,多重继承

继承是面向对象编程的一种特性,是保留原有类功能的前提下拓展或改写部分功能,实现代码复用的方式,

单继承就是一个类只可以继承自一个父类,多继承是指一个类可以同时继承多个父类

java中使用的是单继承,也就是一个类有且只能有一个父类,java中可以使用接口实现来实现类似多继承的效果

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

在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承。

那么,有没有办法,可以在不使用接口的情况下实现多继承呢?答案是可以。

使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法可以实现多继承所需的功能,所以把它称为实现了多继承。

下面就举个例子:

假如有一个打电话类Call,里面实现了一个可以打电话的功能的方法callSomebody(StringphoneNum);

一个发信息类SendMessage,里面实现了一个可以发信息功能的方法sendToSomebody(StringphoneNum);

还有一个手机类Phone,这个手机类想实现打电话和发信息的功能;我们知道可以用继承来获得父类的方法,但是只可以单继承呀,也就是说只可以实现其中一个类里面的方法,这并不满足我们的需求。

接下来,我们就使用内部类,达到我们所需的目标了。

classCall{

publicvoidcallSomebody(StringphoneNum){

System.out.println("我在打电话喔,呼叫的号码是:"+phoneNum);

}

}

classSendMessage{

publicvoidsendToSomebody(StringphoneNum){

System.out.println("我在发短信喔,发送给:"+phoneNum);

}

}

publicclassPhone{

privateclassMyCallextendsCall{

}

privateclassMySendMessageextendsSendMessage{

}

privateMyCallcall=newMyCall();

privateMySendMessagesend=newMySendMessage();

publicvoidphoneCall(StringphoneNum){

call.callSomebody(phoneNum);

}

publicvoidphoneSend(StringphoneNum){

send.sendToSomebody(phoneNum);

}

publicstaticvoidmain(String[]args){

Phonephone=newPhone();

phone.phoneCall("110");

phone.phoneSend("119");

}

}

这样就实现了callSomebody(StringphoneNum)和sendToSomebody(StringphoneNum)这两个方法的功能呢。

Java为什么不支持多继承

先说说多继承和单继承的区别。举个例子,如果在武侠世界,多继承意味着人们可以加入多个门派,学习多种武功,集百家之长,风险就是需要自行判断这些武功是否兼容,好的例子是郭靖,坏的例子则是鸠摩智;单继承的武侠世界,人们只能加入一个门派,学习到这个门派的所有武功,缺点是外人可能以为你只会本门武功,即使你自创了更厉害的,他们也不知道。

java从一开始就不支持多继承,主要的原因还是为了简化语言,避免多继承带来的复杂性。相比多接口,多继承机制中一个类可以继承多个类,拥有所有父类的功能,是一种更强大的语言特性,但是对于编程语言来讲,要想实现多继承,语法、编译等方面会十分复杂,因此java语言宣称多接口能够满足需要,但随着时间的推移,官方也在尝试弥补这个缺陷,java8中,接口引入默认实现,这也向多继承靠近了一步。至于java最终是否会支持多继承,还要时间来见证。

OK,关于Java为什么不支持多继承和多重继承不建议7使用的内容到此结束了,希望对大家有所帮助。

为什么 Java 不支持多重继承
  • 声明:本文内容来自互联网不代表本站观点,转载请注明出处:bk.66688897.com/12/100964.html
上一篇:jeep公路车能买吗(jeep公路自行车)
下一篇:产妇坐月子期间可以吃炒鸡蛋吗
相关文章
返回顶部小火箭