java继承(extends),单继承简单介绍

KLQ 2020-09-02 14:42:16 java常见问答 8757

之前给大家简单的讲述了一下java继承(extends)的简单知识,那么下面要接着给大家讲到的就是java的单继承,对于单继承你了解多少呢?

Java语言摒弃了C++当中非常难以去理解的多继承特征,也就是说,java不支持多继承,只允许一个类直接继承另一个类,也就是子类只可以有一个直接父类,extends关键字后面只可以有一个类名。

例:

下面的代码会导致编译错误:

class Student extends Person,Person1,Person2{…}class Student extends Person,extends Person1,extends Person2{…}

通常,在介绍java单继承的时候,也许会说java类只可以有一个父类,其实,实际上来说,这样的说法存在着一些错误。

应该是一个类只能有一个直接父类,但是它可以有多个间接的父类。

例:

Student类继承Person类,Person类继承Person1类,Person1类继承Person2类,那么Person1和Person2类是Student类的间接父类。

下面就展示了单继承的关系:

单继承的关系

讲解:

三角形、四边形和五边形的直接父类是多边形类,它们的间接父类是图形类,图形类、多边形类和三角形、四边形、五边形类形成了一个继承的分支,在这个分支上,位于下层的子类会继承上层所有直接或间接父类的属性和方法。

假如,两个类不在同一个继承树分支上,就不会存在继承关系,例如多边形类和直线。

假如,定义一个Java类的时候,并没有显式指定这个类的直接父类,那么,这个类默认继承 java.lang.Object类。

所以的话,java.lang.Object类是所有类的父类,要么是其直接父类,要么是其间接父类,所以,所有的Java对象都能够调用java.lang.Object类所定义的实例方法。

其他:

使用继承的注意点:

子类一般比父类包含更多的属性和方法;

父类中的private成员在子类中是不可见的,所以在子类中不能直接使用它们;

父类和其子类间必须存在“是一个”即“is-a”的关系,否则不能用继承。

可是,并不是所有符合“is-a”关系的都应该用继承。

例:正方形是一个矩形,但不能让正方形类来继承矩形类,因为正方形不能从矩形扩展得到任何东西。

正确的继承关系是正方形类继承图形类;

Java只允许单一继承(即一个子类只能有一个直接父类),C++可以多重继承(即一个子类有多个直接父类);

继承优点:

继承优点

继承的缺点:

继承优点

对于java的单继承就给你简单的介绍到这里了,更多和java单继承相关的java基础知识,可以继续的通过关注奇Q工具网来进行了解哦。

推荐阅读:

java为什么是单继承?原因详解

java继承(extends)实例分享

java语言支持多继承吗?为什么?