1、什么是面向对象
面向对象的程序设计的核心是对象(上帝式思维),要理解对象是什么,就要把自己当成上帝,上帝眼里世间存在的万物皆对象,不存在的也可以创造出来。对象是特征和技能的结合,其中特征和技能分别对应对象的数据属性和方法属性。
2、优缺点
优点是: 便于维护,复用性强,具有很高的扩展性。
对某一个对象单独修改,会立刻反映到整个体系中,例如对游戏中一个人物的特征和技能修改。
缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精确的预测问题的处理流程与结果。
面向对象的程序一旦开始就由对象之间的交互解决问题,并不能很好的预测最终结果,例如游戏中一个人物的技能特性十分OP,导致失去平衡。
3、三大特性
面向对象的编程时以对象为中心,以消息为驱动,所以程序=对象+消息。
面向对象的三大特性,封装、继承和多态。
封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,行为公开化,提高了数据隐秘性
的同时,使代码模块化。这样做使得代码的复用性更高。
继承则进一步将一类事物共有的属性和行为抽象成一个父类,而每一个子类是一个特殊的父类(有父类的行为和属性,也有自己特有的行为和属性)。这样做扩展了已存在的代码模块,进一步提高代码的复用性。
多态是为了实现接口重用,多态的一大作用就是为了解耦,为了解除父类子类继承的耦合度。如果说继承中父子类的关系是IS-A的关系,那么接口和实现类与类之间的关系式HAS-A。简单来说,多态就是允许父类引用(或接口)指向子类(或实现类)对象。很多设计模式都是基于面向对象的多态性设计的。
总的来说,如果封装和继承是面向对象的基础,那么多态则是面向对象最精髓的理论。掌握多态必先了解接口,只能充分理解接口才能更好的应用多态。