### 三大特性
1. 封装
	把数据和操作数据的方法放在一起，并隐藏实现细节，只对外暴露合适的接口。
2. [[继承]]
	在已有类型的基础上复用和扩展功能，表达清晰的 `is-a` 关系。
3. [[多态vob|多态]]
	同一个调用入口，在不同对象上表现出不同实现。

补充：
- 三大特性是面向对象里最常见的基础概念。
- 实际写代码时，通常是先做好封装，再视情况决定要不要用继承和多态。

#### 七大原则
1. 开闭原则
	对扩展开放，对修改关闭。
2. 依赖倒转原则
	高层模块不依赖低层细节，双方都依赖抽象。
3. [[里氏替换原则]]
	子类对象应该能替换父类对象而不破坏程序正确性。
4. 单一职责原则
	一个类最好只负责一类事情。
5. 接口隔离原则
	接口要小而专，不要逼调用方依赖自己用不到的成员。
6. 合成复用原则
	优先使用组合，而不是为了复用就滥用继承。
7. 迪米特法则
	对象之间尽量少了解内部细节，降低耦合。

补充：
- 这些原则是设计经验，不是语法规则。
- 新手阶段先理解“为什么这么设计会更好维护”，比死记名字更重要。
