概念
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
特性:1.子类拥有父类非private的属性和方法。
2.子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3.子类可以用自己的方式实现父类的方法。
好处:复用、易维护
缺陷:1.父类变,子类就必须变
2.继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。
3.继承是一种强耦合关系。
构造方法
子类不能继承父类的构造器,但能通过super调用 (子类创建都会走父类的构造器,要么显示调用,要么系统自动调用)
1.如果父类有无参构造,若未使用super关键字,系统会自动调用父类的无参构造
2.如果父类只有带参构造,则必须在子类构造器中用过super显示调用与之匹配参数列表的父类构造方法 (super必须在第一句)
(若一个类存在有参构造,系统不再提供默认无参构造,只能显示写个无参构造)
关键字
extends:在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。
super:super关键字用来实现对父类成员的访问,用来引用当前对象的父类。
this:指向自己的引用。
final: 声明类 —— 类不能被继承 (且该类的方法自动声明为final)
声明方法 —— 方法不能被重写
声明变量 —— 变量不能被修改(如果是引用类型,则指地址不能变,指向的内容可变)