01什么是面向对象编程(OOP),它的核心思想是什么?
问题: 什么是面向对象编程(OOP),它的核心思想是什么?
👇 点击展开/折叠 面试背诵模板(建议先背这个)
四大核心机制的职责划分
封装、继承、多态、抽象在 OOP 中承担不同的“角色”:
- 封装:保护数据完整性,将内部状态私有化(如 Python 中用
_或__约定),仅通过公共方法(getter/setter)访问,降低模块间耦合。 - 继承:建立 is-a 关系(如
Dog是Animal),子类自动获得父类特性,支持重写(Override)以定制行为,是代码复用的主要手段。 - 多态:允许不同类的对象对同一消息(方法调用)做出不同响应。在 Python 中表现为鸭子类型(只要实现相应方法即可,不强制依赖继承)。
- 抽象:通过抽象类(
ABC模块)定义接口规范,强制子类实现特定方法,将“做什么”与“怎么做”分离。
类与对象的本质关系(抽象蓝图与具体实体)
- 类(Class):是静态的抽象模板,定义了对象应有的结构和能力,编译时(或定义时)即存在。
- 对象(Object):是动态的具体实体,依据类模板在堆内存中分配独立空间,拥有独立的属性值(如
stu1.name与stu2.name互不影响)。 - 现实映射:类好比“汽车设计图”,对象则是根据该图纸生产出来的实体“小轿车”。
OOP 在大型系统设计中的核心价值
相较于面向过程(POP),OOP 在大型系统中优势显著:
- 应对复杂性:通过将系统拆分为职责单一的对象,降低了认知负担,便于团队分工。
- 拥抱变化:多态和开闭原则(对扩展开放,对修改关闭)使得新增功能(如新增
Cat类)无需修改原有调用方代码。 - 数据安全:封装机制防止外部代码直接破坏对象的合法状态(如年龄不能为负数)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LGQ的博客!