封装
从业务逻辑中抽象对象时,赋予对象相关数据与操作,把一些数据和操作打包在一起的过程就是封装
对象的实现和使用是独立的
支持代码复用

多态
对象怎么回应一个依赖于对象类型或种类的消息
在不同情况下用一个函数名启用不同方法
灵活性

继承
一个类(subclass)可以借用另一个类(superclass)的行为
避免重复操作
提升代码复用程度