什么是面向对象,不如先讲一下什么是面向过程。
- 面向过程的思想形容人的话“会行动,会说话,会思考”
- 面向对象的思想形容人的话“人应该有脚,有嘴巴,有脑子,然后脚,嘴巴,脑子对应就有行动,说话,思考的动作”
同样的软件系统,用过程描述的时候,我们会说这个系统有哪些模块,具体功能是什么,数据是怎么通过这些模块处理的。用对象描述的时候,我们说有哪些成员变量,然后我是怎么操作这些成员变量。
总之,面向对象编程是一个编程思想,这种思想把世间一切事物都看成具体的对象,并且每个对象都有固有的属性和方法。
面向对象的编程方法具有四个基本特征:
- 抽象,就是说不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节。比如,要设计一个学生成绩管理,我们肯定只关心他的班级,学号,成绩,而不用关心他的爱好,体重身高。抽象还分数据抽象和过程抽象。
- 继承,很好地解决代码重用的问题,提供了一种明确表述共性的方法,子类可以从他的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合的需要
- 封装
- 多态,允许不同类的对象对同一消息作出响应,分静态多态性(重载)和动态多态性(虚函数)。