面向对象和面向过程
面向过程(POP):面向过程是具体到每一个行为,按顺序执行
面向对象(OOP):面向对象是一种编程思想,
类与对象
面向对象编程最基础的是对象,类是所有对象的抽象模板,对象是类的一个具体实例
成员变量和局部变量
this关键字
用来指代当前类的实例对象,用于调用当前类的属性和方法
静态代码块
仅在类被加载时加载一次
代码块执行顺序
代码块、静态代码块、父子类构造器执行顺序
- 父类的静态代码块
- 子类的静态代码块
- 父类的代码块
- 父类的构造器
- 子类的代码块
- 子类的构造器
类访问权限

方法重写和重载
封装
保证数据安全性
继承
多态
抽象
接口
接口和抽象类的区别
- 关键字不同(abstract,interface)
- 抽象类可以包含非抽象方法,接口中全是抽象方法
- 具体化方法不同:接口通过实现类,抽象类通过继承
- 抽象类单继承,接口多实现
- 设计目的不同:抽象类是代码复用,接口是行为规范
设计层面的本质区别
- 抽象类是
从下往上的复用,接口是从上往下的约束 - 抽象类描述
是什么,接口描述能做什么
接口能替代抽象类吗?
不能。 根本原因:
- 接口不能有实例变量(无法保存对象状态)
- 接口的 default 方法如果有冲突(多继承的菱形问题),需要子类手动解决
- 抽象类可以控制访问权限(protected 给子类用,接口所有方法默认 public)