美文网首页Java入门基础
为什么Java类只能单继承

为什么Java类只能单继承

作者: Jadyn | 来源:发表于2015-07-21 15:36 被阅读1606次

首先我们要明确一个事实,在Java语言中类只能单继承与某个类,却可以多集成接口。同时接口与接口之间可以多继承。

为什么Java类只能单继承?

“Java是一种简单的,面向对象的,分布式的,解释型的,健壮的,安全的,架构中立的,可移植的,高性能的,支持多线程的,动态语言。”

以上这段话是James Gosling对于Java语言的定义。定义中提到Java的一个特性是简单。好,那接下来我们设想,Java是可以多继承的,举个例子,在这里有个A类,我们又编写了两个类B类和C类,并且B类和C类分别继承了A类,并且对A类的同一个方法进行了覆盖。如果此时我们再次编写了一个D类,并且D类以多继承的方式同时集成了B类和C类,那么D类也会继承B类和C类从A类中重载的方法,那么问题来了,D类也开始犯迷糊了,我到底应该哪个继承哪个类中的方法呢,因为类是结构性的,这样就会造成结构上的混乱。这就是多继承的菱形继承问题。

学习过C++的同学可能会问,C++也是面向对象的,为什么它却可以多继承的呢?首先,C++语言是1983年由贝尔实验室的Bjarne Stroustrup在C语言的基础上推出的,Java语言是1995年由James Gosling和同事共同正式推出的。其次,在C++被设计出来后,就会经常掉入多继承这个陷阱,虽然它也提出了相应的解决办法,但Java语言本着简单的原则舍弃了C++中的多继承,这样也会使程序更具安全性。

为什么Java类可以集成多个接口?

Java接口是行为性的,也就是说它只是定义某个行为的名称,而具体的行为的实现是集成接口的类实现的,因此就算两个接口中定义了两个名称完全相同的方法,当某个类去集成这两个接口时,类中也只会有一个相应的方法,这个方法的具体实现是这个类来进行编写的,所以并不会出现结构混乱的情况。

为什么Java接口与接口之间可以多继承?

通过以上的阐述,我想这个问题也就迎刃而解了。

在这篇文章中有自己的一点点理解,如果有不正确的地方,请见谅,并私信或评论告诉我,谢谢。

相关文章

  • JAVA 核心笔记 || [7] 继承

    继承 被继承的类为 基类 或者 父类 类 只能单继承 不可同时继承多类 Animal.java Dog.java ...

  • Java学习之继承、final/static、多态、类的加载

    继承 Java所有类都继承跟类Object Java只能进行单继承,一个类只能继承一个类(一个儿子只能有一个父亲)...

  • 为什么Java类只能单继承

    首先我们要明确一个事实,在Java语言中类只能单继承与某个类,却可以多集成接口。同时接口与接口之间可以多继承。 为...

  • 内部类的简单理解

    内部类 内部类,即定义在一个类的内部的类。为什么有内部类呢? 我们知道,在java中类是单继承的,一个类只能继承另...

  • java 内部类

    内部类:即定义在一个类内部的类。 为什么会有内部类? 1.java中的类是单继承的,一个类只能继承另一个具体类或者...

  • NO.18 继承(extends)

    Java中类的继承特点 Java只支持单继承,不支持多继承。(一个儿子只能有一个爹) 有些语...

  • 面向对象三大特性

    三大特性:继承 封装 多态 继承 Java中的继承只能单继承,但是可以通过内部类继承其他类来实现多继承。 封装 封...

  • 继承,方法的重写,super关键字

    (1)继承是发生在多个类之间(2)继承使用关键字extends(3) JAVA只能单继承,允许多层继承(4)被继承...

  • Python-学习之路-08 OOP -02

    单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类可以继承多个类 单继承的多继承的优缺点 菱形继承/钻石...

  • Java程序员面试笔试提纲(部分)

    1.在java中,程序中通过类的定义,只能实现单继承,但是通过接口可以实现多继承 2.java类的成员分为publ...

网友评论

    本文标题:为什么Java类只能单继承

    本文链接:https://www.haomeiwen.com/subject/wsvpqttx.html