对比面向过程
面向过程,更注重事情的处理步骤和顺序,
面向对象更注重事件的参与对象, 以及各自需要做什么
比如: 洗衣机洗衣服:
面向过程会将任务拆解为一系列步骤(函数)
- 打开洗衣机
- 放衣服
- 放洗衣粉
- 清洗
- 烘干
面向对象会才分人和洗衣机两个对象:
人: 打开洗衣机, 放衣服, 放洗衣粉
洗衣机:清洗, 烘干
面向对象更易于复用、扩展和维护
面向对象
封装:访问控制,明确标识出允许对象外部使用的成员,最少知识原则
继承:继承基类的方法, 并做出自己的改变或扩展
多态:基于对象所属类的不同, 外部对同一个方法的调用,实际执行逻辑不同
// 继承, 方法重写, 父类引用只想子类对象
// 缺点, 无法调用子类特有的功能
Parent o = new Son()
o.function()