面向对象

205 阅读1分钟

对比面向过程

面向过程,更注重事情的处理步骤和顺序,
面向对象更注重事件的参与对象, 以及各自需要做什么

比如: 洗衣机洗衣服:
面向过程会将任务拆解为一系列步骤(函数)

  1. 打开洗衣机
  2. 放衣服
  3. 放洗衣粉
  4. 清洗
  5. 烘干

面向对象会才分人和洗衣机两个对象:
人: 打开洗衣机, 放衣服, 放洗衣粉
洗衣机:清洗, 烘干

面向对象更易于复用、扩展和维护

面向对象 封装:访问控制,明确标识出允许对象外部使用的成员,最少知识原则
继承:继承基类的方法, 并做出自己的改变或扩展
多态:基于对象所属类的不同, 外部对同一个方法的调用,实际执行逻辑不同

// 继承, 方法重写, 父类引用只想子类对象
// 缺点, 无法调用子类特有的功能
Parent o = new Son()
o.function()