面向对象总结
特征
-
封装,继承,多态
-
5大原则
封装
- 隐藏实现细节,不让外界直接访问
- private 修饰的成员,只能在类内部访问
- 标准类
- 成员变量私有
- get/set方法
- 构造方法
- 如果没有写构造方法,系统提供默认的空参构造
- 如果写了有参构造,自己就要定义空参构造
- 成员变量赋值
- this
- 代表当前调用者
- 用来区分成员变量和局部变量的重名问题
继承
-
继承概念:实现类与类的关系,父子关系;子类可以继承父类的非私有成员
-
关键字 extends
-
格式 子类 extends 父类
-
特点:
- 继承是单继承的
- 继承是多层继承的
-
成员关系
- 成员变量
- 就近原则
- 本类成员变量 this.成员变量
- 父类成员变量 super.成员变量
- 构造方法
- 子类的构造方法默认第一句都是访问父类的空参构造
- 如果父类没有空参构造
- 父类中加上空参构造,标准做法
- 子类使用super关键字去调用父类的有参构造
- 子类调用自己的构造方法可以通过this关键字
- 成员方法
- 现在本类查找
- 父类查找
- 重名,就会重写,重写的关键字@Override,用来检查重写是否正确
- 重写和重载的区别
- 注意事项
- 私有方法不能被重写(父类私有成员子类是不能继承的)
- 子类方法访问权限不能更低(public > 默认 > 私有)
- 静态方法不能被重写,如果子类也有相同的方法,并不是重写的父类的方法
- 成员变量
-
抽象类 abstract
- 包含抽象方法的类是抽象类,抽象方法没有方法体
-
final
- 类、方法、变量
-
static
- 修饰的成员,所有对象共享
- 用类来访问,随着类的加载而加载
-
代码块
- 局部代码块-- 方法体中
- 构造代码块—类中方法外
- 静态代码块—只执行一次,类加载的时候
static{}
多态
- 接口
- interface implements
- 成员
- 常量
- 抽象方法
- 默认方法
- 静态方法
- 私有方法