好吧,这个我知道。但是我不懂的怎么用自己的语言描述这个问题。
面向对象的特征无非就是 封装 继承 多态 。 万物皆对象。拿起我们的面向过程对比来说。
面向过程就是一件事情的开始到结束,按照顺序执行。比如吃饭,你吃饭首先要吃米饭 然后吃菜 吃米饭 吃菜 吃米饭 吃米饭 吃菜。饭吃完了刷碗。
面向对象就是这个对象就是你,你会吃饭和吃菜与刷碗。到点你来吃饭你就来,完成一系列动作。不是按照上面顺序执行,而不是每次都是吃饭 吃菜 吃饭 吃菜 ,可以吃饭 吃饭 吃饭 不吃菜然后直接刷碗。
上面的例子: 封装:一个类对象就是你,你拥有吃饭,吃菜,刷碗的方法。你的属性公开拥有的方法。
继承:你有儿子了你教会了他所有的技能吃饭 吃菜 刷碗。可能他的方式不同,他自己又学习了做饭这项技能。自己学会了做饭的技能。
多态:你的爸爸,妈妈,也会吃饭,吃菜,刷碗。拥有同样的方式,只是实现不同,打个比方你的父亲是站着吃饭,你是喜欢坐着吃饭。你父亲是站着刷碗,你是坐着刷碗。 拥有同样的方法,只是实现方式不同,结果也不相同。
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低