目录
一. 继承的定义
1.1 基本概念
1.2 基本实现
二. 父类 和 子类中的成员访问
2.0 super 与 this 关键字
2.1 访问成员变量
2.2 访问成员方法
三. 父类 和 子类中的构造方法
3.1 访问父类中的构造方法
3.2 注意事项
四. 权限修饰限定符
public:
protected:
default:
private:
五. 继承方式
六. final关键字
6.1 final 修饰 变量
6.2 final 修饰 成员方法
6.3 final 修饰 类
七. 继承与组合
八. 总结
一. 继承的定义
1.1 基本概念
继承就是对多个类的共性进行抽取, 以实现代码的复用.
父类和子类是 is a 的关系.
1.2 基本实现
使用 extends 关键字 来实现继承.
Animal类: 父类/基类/超类
Cat/Dog类: 子类/派生类
二. 父类 和 子类中的成员访问
2.0 super 与 this 关键字
super:
0. super关键字并不代表父类的引用, 它起到了一种标识作用, 表示就是要访问父类的成员.
1. super.成员变量
2. super.成员方法
3. super() // 访问父类的构造方法
this:
0. this关键字代表的是当前对象的引用.
1. this.成员变量
2. this.成员方法
3. this() // 访问子类的构造方法
2.1 访问成员变量
当父类和子类中存在同名的成员变量时, 优先访问子类中的成员变量.
使用 super.成员变量 来指定访问父类中的成员变量.
2.2 访问成员方法
当父类和子类中存在同名的成员方法是, 优先访问子类中的成员方法.
使用 super.成员方法 来指定访问父类中的成员方法.
三. 父类 和 子类中的构造方法
3.1 访问父类中的构造方法
切记: 先有父, 在有子.
在对子类中的成员变量初始化之前, 需要先对父类中的成员变量进行初始化.
此时, 就用到了 super().
3.2 注意事项
super() 与 this() 都必须放在构造方法中的第一行, 否则,编译失败.
所以,super() 与 this() 不能够同时出现.
四. 权限修饰限定符
权限关系大小: public > protected > default > private
public:
1. 所有包中的所有类.
protected:
1. 同一个包中的所有类.
2. 不同包中的子类.
default:
1. 同一个包中的所有类(包访问权限).
private:
1. 同一个中的同一类(只能在当前类中被访问).
五. 继承方式
JAVA当中 不支持多继承(一个类继承多个类). (后面通过接口来解决java中不能多继承的问题)
六. final关键字
6.1 final 修饰 变量
final修饰变量 表示 常量.
6.2 final 修饰 成员方法
final 修饰成员方法, 表示这个方法具有了不可变性, 不能够被重写.(密封方法) (后期多态时介绍)
6.3 final 修饰 类
final 修饰的 类,不能够再被其他类继承(密封类).
七. 继承与组合
组合就是将一个类的实例化对象 作为 另一个类的成员变量.
继承是 is a 的关系.
组合是 has a 的关系.
八. 总结
1. 继承的基本定义与实现(使用extends关键字来实现继承).
2. super 关键字(不是代表父类的引用, 是起到了一种标识的作用, 表示就是访问父类中的成员).
3. this 关键字, 代表的是当前对象的引用.
4. 权限控制.
5. final 关键字的使用
6. 组合 是 has a 的关系(相当于是一个东西有一个个的零件).