这是因为为了降低复杂度和简化语言,java 中不支持多重继承。考虑一个场景,其中 A、B 和 C 是三个类。C 类继承 A 和 B 类。如果 A 类和 B 类有相同的方法,并且你从子类对象中调用它,那么调用 A 类或 B 类的方法就会有歧义。
为了降低复杂度和简化语言,java 中不支持多重继承。考虑一个场景,其中 A、B 和 C 是三个类。C 类继承 A 和 B 类。如果 A 类和 B 类有相同的方法,并且你从子类对象中调用它,那么调用 A 类或 B 类的方法就会有歧义。
由于编译时错误优于运行时错误,如果继承 2 个类,Java 会呈现编译时错误。所以无论你有相同的方法还是不同的方法,都会出现编译时错误。
首先,我们要知道继承这个概念在面向对象语言中本身就是和 类 同等重要的地位,继承也是面向对象语言中最为重要的特征之一。基于类的概念,类是将需要写的代码抽象化成一个个具有相同属性或行为的东西,如果我们想要去初始化一个子类,那么一定代表是具有父类的特征的。这样我们还得到了其他好处:
可以直接获取父类的字段和行为
可以修改父类的行为
可以重载父类的行为(即指多态的概念)
可以添加新的字段和行为
这样进一步把面向对象语言具有更多的功能,更加的抽象。所以从高效使用语言和方便快捷使用语言的好处来看,既可以提高我们所写的程序的抽象程度,而且还是实现了父类代码的复用,还兼具了修改功能,以此提高了开发效率和可维护性。
我们继续考虑子类是由父类功能和属性的拓展,延伸而来的,所以想想哪个关键词可以表达派生,延伸的概念,于是引入了 **Extends** 来表示继承的概念,后面连接的类名是代表从哪里继承而来的。引入了Java中的继承是通过extends关键字来实现的。
延伸阅读:
什么是Java
Java programming language具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。常用的Java平台基于Java1.8,最近版本为Java19。
文章标题:Java为什么不支持多继承,发布者:小编,转载请注明出处:https://worktile.com/kb/p/36155