### 三大特性 1. 封装 把数据和操作数据的方法放在一起,并隐藏实现细节,只对外暴露合适的接口。 2. [[继承]] 在已有类型的基础上复用和扩展功能,表达清晰的 `is-a` 关系。 3. [[多态vob|多态]] 同一个调用入口,在不同对象上表现出不同实现。 补充: - 三大特性是面向对象里最常见的基础概念。 - 实际写代码时,通常是先做好封装,再视情况决定要不要用继承和多态。 #### 七大原则 1. 开闭原则 对扩展开放,对修改关闭。 2. 依赖倒转原则 高层模块不依赖低层细节,双方都依赖抽象。 3. [[里氏替换原则]] 子类对象应该能替换父类对象而不破坏程序正确性。 4. 单一职责原则 一个类最好只负责一类事情。 5. 接口隔离原则 接口要小而专,不要逼调用方依赖自己用不到的成员。 6. 合成复用原则 优先使用组合,而不是为了复用就滥用继承。 7. 迪米特法则 对象之间尽量少了解内部细节,降低耦合。 补充: - 这些原则是设计经验,不是语法规则。 - 新手阶段先理解“为什么这么设计会更好维护”,比死记名字更重要。