三要素:封装、继承、多态
五原则:
单一职责原则(Single Resposibility Principle)
开放封闭原则(Open-Close Principle):对扩展开放,对修改封闭
Liskov 替换原则: 参考(http://blog.csdn.net/zhengzhb/article/details/7281833)
里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:
- 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
- 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
依赖倒置原则(Dependency Inversion Principle):
http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important
- High level modules should not depend upon low-level modules. Both should depend upon abstractions.
- Abstractions should never depend upon details. Details should depend upon abstractions.
接口隔离原则(Interface Isolation Principle)