之前给大家简单的讲述了一下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基础知识,可以继续的通过关注 来进行了解哦。