继承
子类继承父类的特征和行为,是子类具有父类的实例域和方法
格式
class 子类 extends 父类{}
特点
- 子类可以继承父类非private的属性和方法,可以拥有自己的属性和方法,故父类实际上是所有子类公共属性和方法的集合
- 单继承,一个类只能有一个直接父类,但是可以多层继承,C继承B,B继承A
- 无extends继承,默认继承java.lang.Object
关键字
this
指向自己的引用
- this():调用同类其他类型构造器
a. 必须放在第一行
b. 不能放在普通方法中调用
c. 只能调用一次
d. 调用符合参数列表的构造器 - 用法:
a. 当前对象的引用
b. 类成员变量的引用
c. 构造器 - 构造器:
a. 子类不继承父类的构造方法,仅调用,主函数实例化对象调用子类构造器时,会先自动调用父类相同类型的构造器,然后再调用子类构造器
b. 如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表
super
对父类对象的访问,包括成员变量、方法
implements
使类继承接口
extends
单一继承
继承规则
- 成员变量的隐藏:同名成员变量,父类隐藏,仍占内存,子类不能继承父类的成员变量
- 成员方法的覆盖(重写):同名成员方法,父类被覆盖,内存被清除
a. 覆盖条件:前提是构成继承,返回值、参数列表一致,访问权限不能比父类更严格
构造器
子类不继承父类的构造方法,仅调用,主函数实例化对象调用子类构造器时,会先自动调用父类相同类型的构造器,然后再调用子类构造器
方法重载
同名,但参数类型及个数不同,修饰符、返回值可以不同
对象转型
- 向上转型:父类引用指向子类对象 Animal animal = new Cat();
- 向下转型:
多态
同一行为具有多种表现形式,例如同一接口,不同的实例执行不同的操作
- 存在的必要条件:
继承
重写
父类引用指向子类对象