<一>继承
继承格式:
class 子类 extends 父类 { }
1.继承的特点:
- 只支持单继承,不支持多继承
错误案例:class A extends B, C { }
- 支持多层继承
2.继承中成员访问特点:
- 子类局部范围找
- 子类成员范围找
- 父类成员范围找
- 如果都没有就报错(不考虑父亲的父亲…)
3.super关键字
- this&super关键字
- this:代表本类对象的引用
- super:(引用父类对象)代表父类存储空间的表示
- this和super的使用分别
- 成员变量
- this 成员变量 访问本类成员变量
- super 成员变量 访问父类成员变量
- 成员方法
- this 成员方法 访问本类成员方法
- super 成员方法 访问父类成员方法
- 构造方法
- this(…) - 访问本类构造方法
- super(…) - 访问父类构造方法
4.继承中成员方法的访问特点
通过子类对象访问一个方法
- 子类成员范围找
- 父类成员范围找
- 如果都没有就报错(不考虑父亲的父亲…)
5.方法重写
-
1.方法重写概念
- 子类出现了和父类中一模一样的方法声明(方法名一样,参数列表也必须一样)
-
2.方法重写的应用场景
- 当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容
-
3.Override注解
- 用来检测当前的方法,是否是重写的方法,起到【校验】的作用
6.方法重写的注意事项
- 方法重写的注意事项
- 私有方法不能被重写(父类私有成员子类是不能继承的)
- 子类方法访问权限不能更低(public > 默认 > 私有)
- 静态方法不能被重写,如果子类也有相同的方法,并不是重写的父类的方法
<二>抽象类
- 抽象类和抽象方法必须使用 abstract 关键字修饰
//抽象类的定义
public abstract class 类名 {}
//抽象方法的定义
public abstract void eat();
-
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
-
抽象类不能实例化
-
抽象类可以有构造方法
-
抽象类的子类
要么重写抽象类中的所有抽象方法
要么是抽象类
小记忆:
常量命名规范**:一个单词全部大写,多个单词全部大写但是要用下划线"_"间隔