Java 面向对象基础面试题整理
适用场景:期末考、面试、校招、Java 基础巩固
难度:基础 − 中级
关键词:Java、面向对象、面试题、构造方法、封装、多态、重载、重写
📌 文章摘要
本文整理了Java 面向对象(OOP)最全高频面试题 + 标准答案,涵盖基础概念、权限修饰符、构造方法、三大特性、易错题、手写代码题。
答案全部按照面试官标准精简编写,可直接背诵,适合面试、考试、期末复习。
🧭 文章目录
1. 基础概念类(必问)
2. 权限修饰符(必考表格)
3. 构造方法高频考点
4. 封装、继承、多态(核心三大块)
5. 易错题 & 避坑题
6. 手写代码题(必考)
一、基础概念类(必问高频)
1. 什么是面向对象?三大特征?
面向对象是把现实事物抽象成程序中的对象,通过对象的属性和行为来描述系统。
三大特征:封装、继承、多态。
2. 类和对象的区别?
类:事物的抽象描述,是对象的模板。
对象:类的具体实例,是具体的、可占用内存的实体。
3. 一个 .java 文件可以有多个类吗?规则?
可以。但必须遵守:
最多 1 个 public 类
public 类的类名必须 = 文件名
其他类为包权限,仅同包可见
4. 构造方法是什么?特点?
构造方法是创建对象时自动调用的特殊方法,用于初始化对象属性。
特点:
方法名 = 类名
无返回值,也不能写 void
可重载
每个类默认有一个无参构造
5. 构造方法能否重载?能否重写?
可以重载:同一个类可定义多个构造方法(参数列表不同)。
不能重写:构造方法不能被继承,因此不存在重写。
6. this 关键字的作用?
代表当前对象
区分成员变量与局部变量(解决命名冲突)
调用本类其他构造方法: this(...)
二、权限修饰符(必考表格)
1. 四种权限访问范围对比(必考表格)

2. 什么是包权限?
不写任何修饰符,即为包权限。
仅同一个包内的类可访问,不同包无法访问。
三、构造方法高频考点
1. 默认构造方法什么时候存在?什么时候消失?
存在:类中没有任何构造方法时,编译器自动生成无参构造。
消失:一旦手动写任意构造,编译器不再自动生成默认构造。
2. 无参构造 vs 有参构造
无参构造:创建默认属性的对象
有参构造:通过参数动态初始化属性,更灵活
3. 构造方法 vs 普通方法
构造方法名 = 类名;普通方法自定义
构造方法无返回值;普通方法必须声明
构造方法在 new 时自动调用;普通方法手动调用
构造方法每个对象仅调用一次;普通方法可调用多次
4. 构造方法能不能写返回值?能不能写 void?
不能。写 void 会被识别为普通方法,构造方法失效。
四、封装、继承、多态(核心三大块)
1. 什么是封装?为什么要封装?
封装:将属性私有化(private),对外提供公共方法访问。
目的:
保护数据安全
避免外部直接修改属性
提高代码可维护性
2. private 的作用?
仅本类内部可访问,是封装的基础。
3. 方法重载(Overload)
同一个类中:
方法名相同
参数列表不同
与返回值无关
实现不同的同名方法。
4. 方法重写(Override)
子类继承父类后:
方法名、参数、返回值必须完全一致
权限不能严于父类
用于实现不同的业务逻辑
5. 重载 vs 重写区别(最常考)
重载:同一个类,同名 + 不同参
重写:父子类,方法签名完全一致
6. 多态?前提?
多态:同一行为,不同对象产生不同表现。
前提:
1. 继承或实现
2. 子类重写父类方法
3. 父类引用指向子类对象
五、易错题 & 避坑题
1. == vs equals() 区别
==:基本类型比较值,引用类型比较地址
equals:默认比地址,重写后比较内容(如 String)
2. String 为什么不能用 == 比较?
String 是引用类型,== 比较的是内存地址,不是字符串内容。
3. 成员变量 vs 局部变量
成员变量:类中方法外,有默认值
局部变量:方法内,无默认值,必须初始化
4. 静态变量 vs 实例变量
static:属于类,所有对象共享
实例变量:属于对象,每个对象独有
5. 为什么重写 equals 必须重写 hashCode?
Java 规范规定:
两个对象 equals 相等 → hashCode 必须相等
否则会导致 HashSet/HashMap 等集合使用出错。
六、手写代码题(必考)
1. 标准 JavaBean(Student 类)
java
public class Student {
private String name;
private String id;
private double mathScore;
private double chineseScore;
public Student() {}
public Student(String name, String id, double mathScore, double chineseScore) {
this.name = name;
this.id = id;
this.mathScore = mathScore;
this.chineseScore = chineseScore;
}
// getter / setter 省略
}
2. 构造方法重载示例
java
public class Test {
private String msg;
public Test() {
this.msg = "默认值";
}
public Test(String msg) {
this.msg = msg;
}
}
3. 根据学号查姓名
java
public String getNameById(List<Student> list, String targetId) {
for (Student s : list) {
if (s.getId().equals(targetId)) {
return s.getName();
}
}
return "未找到该学生";
}
4. 计算平均分
java
public double getAvg(double math, double chinese) {
return (math + chinese) / 2;
}
🎯 总结
面向对象是 Java 的核心基础,面试与考试几乎90% 都会考。
本文整理了全网最高频、最标准、最可背诵的面向对象面试题,你直接背这套即可应对大部分考试与面试。
七、Java 面向对象 20 条速记口诀
1. 面向对象三特征:封装、继承、多态
2. 类是模板对象实,抽象具体要分清
3. 一个文件一类公,类名文件名要相同
4. 构造方法名同类,无返无 void 自动配
5. 构造能重不能写,this 区分变量界
6. 权限四大要记清:公、护、缺、私逐级停
7. 包权限不加符,同包能用外包无
8. 无构造时默认有,一写构造默认走
9. 无参默认有参活,构造重载灵活多
10. 普通方法手动调,构造 new 时自动跑
11. 封装私有加 get set,数据安全不越界
12. 重载同类名相同,参数不同才有用
13. 重写父子签名同,权限不能比父松
14. 多态三前提:继承、重写、父引用
15. == 比值也比址,equals 重写比内容
16. 字符串别用 ==,equals 比较才稳准
17. 成员变量有默认,局部变量要赋值
18. 静态属于类共享,实例属于对象方
19. equals 重写 hashCode,集合不乱才规范
20. 标准 bean 四件套:私有、构造、get、set
八、标签🧷
Java
Java基础
面向对象
OOP
面试题
构造方法
封装
继承
多态
重载
重写
程序员
编程学习
更多推荐




所有评论(0)