Java 基础的面试高频01|面向对象三大特性(封装、继承、多态)

Java 作为一门纯面向对象编程语言,面向对象三大特性几乎是所有 Java 面试的开篇必考题。很多同学只会简单背诵封装、继承、多态三个名词,一旦面试官深挖重载重写区别、多态的实现形式就会卡壳。今天我们结合面试高频考点,彻底吃透面向对象核心知识点,不仅记住结论,更搞懂底层设计思想。

一、封装:隐藏实现,暴露访问入口

1. 什么是封装

封装就是将类的属性私有化,对外提供公共的 get/set 方法来访问、修改私有成员变量,把对象的内部实现细节隐藏起来,只对外暴露安

全的访问方式。

2. 设计意义

  • 保护类中数据的安全性,避免外部随意篡改属性;

  • 代码高内聚,业务逻辑统一在类内部维护,降低代码耦合;

  • 方便统一做参数校验,比如给年龄赋值时限制范围 0-120。

面试常见追问

如果不做封装,直接把成员变量用public修饰会有什么问题?

答:外部可以随意赋值非法数据,无法做数据校验,代码可维护性、安全性极差。

二、继承:代码复用,建立类与类的从属关系

1. 继承核心作用

通过extends关键字让子类复用父类非私有属性、方法,减少重复代码,同时可以基于父类进行功能扩展,是实现多态的前提条件。

2. Java 继承核心规则

  • Java 是单继承:一个类只能直接继承一个父类,但可以多层继承;

  • 子类无法继承父类 private 修饰的成员;

  • 构造方法不能被继承,子类默认会调用父类无参构造super();

  • 可以通过方法重写对父类功能进行拓展改造。

面试高频坑点

为什么 Java 不支持多继承?

答:避免方法冲突,如果多个父类存在同名方法,子类调用时会产生二义性,所以 Java 采用单继承 + 多实现接口的方式来兼顾代码拓展性。

三、多态:同一个行为,不同对象有不同实现

1. 多态核心概念

父类引用指向子类对象,同一个方法调用,根据运行时实际对象类型,执行不同子类的方法实现,分为编译时多态、运行时多态两类。

2. 多态两种体现形式

(1)编译时多态:方法重载(Overload)

同一个类中,方法名相同,参数个数、类型、顺序不同,和返回值、访问修饰符无关,在编译阶段就确定调用哪个方法。

典型场景:同一个类中多个同名构造方法、工具类重载方法。

(2)运行时多态:方法重写(Override)

子类重写父类的方法,父类引用指向子类对象时,程序运行阶段才确定执行子类重写后的方法。

重写约束:子类方法权限不能低于父类、返回值兼容、方法名参数列表必须完全一致,不能重写父类 final/static 方法。

面试必问:重载和重写详细区别

对比维度 重载 (Overload) 重写 (Override)
发生位置 同一个类中 父子类之间
方法要求 方法名相同,参数列表不同 方法名、参数列表、返回值必须兼容
权限修饰符 无限制 子类权限不能比父类更严格
多态类型 编译期多态 运行期多态
关键字 无强制要求 可以用 @Override 注解校验

四、面向对象面试高频总结

  • 封装:藏细节、保安全;继承:做复用、拓功能;多态:解耦合、易扩展;

  • 重载看参数,重写看父子;重载编译绑定,重写运行绑定;

  • 多态的三个前提:继承 / 实现、方法重写、父类引用指向子类对象。

posted @ 2026-07-01 22:35  桃桃不淘1  阅读(0)  评论(0)    收藏  举报