继承的概念:继承就是子类继承父类的特征和行为;但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。
如父类为:动物; 子类为:食草动物;子类的子类:牛
类的继承格式:extends
class 父类 {
}
class 子类 extends 父类 {
}
为什么需要继承?
若不用继承,定义相似的类的时候代码臃肿且量大,可维护性差。
因此需要我们从相似的类中取出相同的部分组成一个父类。使代码更加简洁,提高可维护性和复用性。
继承类型
java不支持多继承,但支持多重继承。(子类只能有一个父类)
![](https://img.haomeiwen.com/i16472855/fce8677199ff7571.png)
继承的特性
子类拥有父类非 private 的属性、方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。(就是重写方法,详情见:java高级学习之2:重写与重载)
Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
继承关键字
继承可以使用 extends 和 implements 这两个关键字来实现继承。
extends 关键字:用于继承类
一个子类只能拥有一个父类,所以 extends 只能继承一个类。
implements 关键字:用于继承接口
使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
(更多关于接口的知识详见:java高级学习之6:接口)
super 与 this 关键字
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。(super . 方法、super . 变量、等等)
this关键字:指向自己的引用。(this . 方法 、this . 变量、等等)
final关键字:声明的类不能被继承
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。(更多有关final关键字的知识,详见:java学习之13:修饰符)
构造器
创建类的时候使用子类的构造方法之后会自动调用父类的构造方法。注意参数要一致。
![](https://img.haomeiwen.com/i16472855/367196f40432827e.png)
网友评论