继承
继承是多态的前提
共性抽取
特征
- 单继承,一个子类只能有一个父类
- 多层继承,最顶层上类——Object
- 一个父类可以有多个子类
- 子类可以拥有父类的内容,
- 子类可以拥有自己专有的内容
父类就是普通类;子类:class xxx extends 父类
-
创建父类对象,只能使用父类成员
-
创建子类对象,可以使用父类子类成员
-
子类可以复写父类方法
-
父类子类成员变量重名后,创建子类对象时,
-
直接使用:子类对象.成员变量:左边是谁,就用谁的,没有向上寻找
-
间接使用:通过成员方法调用成员变量:本类中有成员,使用本类,没有向上找
-
-
三种变量在子类中
- 局部:直接用
- 本类:this
- 父类:super
-
构造方法中,子类构造共默认有一个super()
-
super()必须在构造的第一句,且只有一个
重写
继承关系中,方法名一样,参数列表一样返回值也有要求
- 创建子类对象,使用子类的方法
- @override:检测正确复写
- 子类方法返回值类型必要小于等于父类方法返回值类型
- 子类方法权限必要大于等于父类方法权限
super
- 在子类成员方法中,访问父类成员变量
- 在子类成员方法中,访问父类成员方法
- 子类构造方法中,访问父类构造方法
this
- 本类成员方法中,访问本类成员变量
- 成员方法中,访问另个成员方法
- 本类构造方法中,访问另个构造方法——this(xxx),也是第一句。所以super与this不可以同时出现在构造中