面向对象的7大原则
里氏替换原则
子类能够完全替换基类(与期望一致)
- 替换
- 与期望一致的替换
合成复用原则
复用时应该优先使用关联关系,而不是继承 关联关系:
-
组合:强关联,人有眼睛 -
聚合:弱关联,一个班级包含20个学生
public class Class {
// 聚合
private List<Student> Students;
}
public class Student {
// 组合
public Head head;
}
关联关系: 可以动态的引用成员对象相同类型的对象,耦合程度较低
继承:
- final对象不能继承
- 暴露了父类方法给子类
- 继承是静态关系,不能动态修改负父类的方法