题目
说说你对 “面向对象” 的理解
答案
**面向对象编程(Object-Oriented Programming,OOP)是一种编程思维方式和编码架构**,是一种 **对现实世界理解和抽象的方法**,是计算机编程技术发展到一定阶段后的产物。 > **什么是对象**:对象是客观存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都可以称为对象 面向对象的基本特点: - **抽象**:对同一类型的对象的共同属性和行为进行概括,形成**类(class)** 。类是构造对象的模板或蓝图。由类构造(construct) 对象的过程称为创建类的**实例 (instance )**. - **封装**:将抽象出的数据、代码封装在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性 - **继承**:在已有类的基础上,进行扩展形成新的类,提高代码复用性。继承是多态的前提 - **多态**:所谓多态就是同一函数名具有不同的功能实现方式 在面向对象之前,比如 C 语言就是**面向过程编程(Procedure-Oriented Programming,POP)**的,这两者的**区别**就在于: - 面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。 ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210106130541.png) - 面向对象是模型化的,你只需抽象出一个类,这是一个**封闭的盒子**,拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现。 ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210106143718.png)