当我们准备编写一个类的时候,发现某个类有我们所需要的成员变量和方法,如果我们想复用这个类中的成员变量和方法,即在所编写的类中不用声明成员变量和定义方法,就相当于有了这个成员变量和方法,那么我们可以将编写的类定义为这个类的子类。


而继承就是一种由已有的类创建新类的机制,利用继承,我们可以先定义一个共有属性的一般类,根据该一般类再定义具有特殊属性的子类,子类继承一般类的属性和行为,并根据需要增加它自己的新的属性和行为。由继承而得到的类称为子类,被继承的类称为父类(超类)。


注意:

Java不支持多重继承,即子类只能有一个父类,人们习惯地称子类与父类的关系是“is-a”关系。


在类的声明中,通过使用关键字extends来定义一个类的子类,一般格式为:

class 子类名 extends 父类名 {
    …
}


例如:

class Student extends People {
    …
}

把Student类定义为People类的子类,People类是Student类的父类(超类)。


类的树形结构:

如果C是B的子类,B又是A的子类,习惯上称C是A的子孙类。Java的类按继承关系形成树形结构(将类看做树上的结点),在这个树形结构中,根结点是Object类(Object是java.lang包中的类),即Object是所有类的祖先类。任何类都是Object类的子孙类,每个类(除了Object类)有且仅有一个父类,一个类可以有多个或零个子类。


注意:

如果一个类(除了Object类)的声明中没有使用extends关键字,这个类被系统默认为是Object的子类。例如:类声明“class A”与“class A extends Object”是等同的。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)