面向对象特征核心就是封装、继承、多态、抽象,这也是计算机面试、教材最常考的四大特征,面向对象是一种编程思想,把程序拆分成一个个对象,对象里面包含属性(数据)和方法(行为),相比传统面向过程,代码复用性更强,更容易维护扩展,理解这四大特征,是学习 Java C++ Python 等面向对象语言的基础。
面向对象的底层逻辑,是把现实世界事物抽象成类,类是模板,对象是类实例化出来的具体实体,四大特征互相配合,封装保护内部数据,继承实现代码复用,多态实现灵活调用,抽象用来提炼共性。
四大特征详细说明
1 封装
把对象的属性和方法打包在类内部,对外隐藏内部实现细节,只对外暴露必要的访问接口,一般使用访问修饰符控制权限,比如 private 私有,public 公开。
优点:保护内部数据不被随意修改,降低模块之间耦合,修改内部代码不会影响外部调用。
2 继承
子类可以继承父类的属性和方法,复用父类已有代码,子类还可以新增自己独有的属性方法,也可以重写父类方法。
优点:代码复用,减少重复代码,建立类之间层级关系。
注意:单继承和多继承区别,Java 只支持类单继承,C++ 支持多继承。
3 多态
同一个方法,不同对象调用的时候,表现出不同的执行结果,分为编译时多态(方法重载)和运行时多态(方法重写 + 向上转型)。
优点:程序扩展性强,新增子类不需要修改原有调用代码,符合开闭原则。
4 抽象
抽取一类事物共同的属性和行为,去掉非关键细节,形成抽象类或者接口,只定义规范,不实现全部细节,强制子类去实现抽象方法。
优点:统一规范,解耦,把共性定义出来,子类各自实现。
面向对象特征对照表
| 特征 | 核心含义 | 主要作用 |
|---|---|---|
| 封装 | 打包数据与方法,隐藏内部细节 | 数据安全,降低耦合 |
| 继承 | 子类获取父类成员 | 代码复用,层级扩展 |
| 多态 | 同一调用,不同对象不同结果 | 提升程序扩展性 |
| 抽象 | 提取共性,定义规范 | 统一接口约束 |
学习理解步骤
1 先理解类和对象的概念,类是模板,对象是实例
2 逐个掌握四大特征定义,区分重载和重写,这个是高频易混点
3 结合代码案例,写简单 Demo 理解封装权限、继承、重写多态
4 区分抽象类和接口,属于抽象特征延伸考点
补充:部分教材只写三大特征(封装、继承、多态),把抽象作为面向对象思想,不算独立四大特征,考试的时候要看题目要求,面试一般优先答四大特征。
【常见问题】
问题 1 面向对象特征里面重载和重写有什么区别
回答 1 面向对象特征多态里面,重载是同一个类里面方法名相同参数列表不同,属于编译时多态;重写是子类对父类同名同参方法重新实现,属于运行时多态,是面向对象特征多态的两个重点考点。
问题 2 面向对象特征里面封装是不是就是全部私有
回答 2 面向对象特征封装不等于全部私有,封装核心是合理控制访问权限,按需暴露 public 接口,内部敏感属性 private,对外提供 get set 方法访问,这是面向对象特征封装标准写法。
问题 3 面向对象特征继承有什么缺点
回答 3 面向对象特征继承缺点是耦合度升高,父类改动会影响所有子类,所以面向对象特征里面推荐优先组合,谨慎使用继承。
【免责申明】
本内容仅作为面向对象特征编程基础知识科普参考,不同教材表述略有差异,应试请以对应考试大纲为准。


