面向对象
一、面向对象与对象过程
二、三大特征
三、五大原则
- 单一职责:一个类只做一件事,达到高内聚低耦合
- 开闭:对扩展开放,对修改封闭
做法:针对接口编程
- 里氏替换:子类能完全替代基类,约束继承体系
做法:针对接口编程,将公共部分抽象为接口或者抽象类
- 依赖倒置:依赖于抽象,而不依赖具体
做法:针对接口编程,上层和底层都实现接口,上层调用接口,底层实现接口
interface Transport {
void move();
}
class Car implements Transport {
@Override
public void move() {
System.out.println("start engine, and move forward 1 kilometer");
}
}
class Bicycle implements Transport {
@Override
public void move() {
System.out.println("get on bicycle, and move forward 1 kilometer");
}
}
class Driver {
void drive(Transport t) {
t.move();
}
}
public class Demo {
public static void main(String[] args) {
Driver d = new Driver();
d.drive(new Bicycle());
d.drive(new Car());
}
}
四、多态
静态多态与动态多态
- 静态多态:重载,编译期决定
- 动态多态:重写,运行期决定
条件
五、平台无关性