安排上了 📘
下面这份是**“必背级别 + 面试/实战双用”的 Java 面向对象(OOP)初阶核心手册,帮你把地基一次性夯实**。
Java 夯实基础必背手册
面向对象(OOP)初阶核心知识点汇总
一句话定位:
看完这篇,你至少能写对代码、看懂设计、扛住初级/中级面试
一、面向对象三大特性(必须背)
1️⃣ 封装(Encapsulation)
定义
将数据和操作数据的方法绑定在一起,对外隐藏实现细节
public class User {
private String name;
public String getName() {
return name;
}
}
核心点
- 成员变量
private - 通过方法暴露行为
- 防止非法状态
📌 面试一句话:
封装是通过访问控制,保证对象状态的安全性和一致性
2️⃣ 继承(Inheritance)
class Animal {
void eat() {}
}
class Dog extends Animal {
void bark() {}
}
核心规则
- Java 单继承
is-a关系- 子类拥有父类 非 private 成员
❗ 不要为了复用而继承
📌 面试一句话:
继承用于表达“是一个”的关系,增强代码复用和多态能力
3️⃣ 多态(Polymorphism)⭐ 重中之重
Animal a = new Dog();
a.eat();
多态成立条件
- 有继承关系
- 方法重写
- 父类引用指向子类对象
关键结论
- 编译看左边,运行看右边
- 成员变量 ❌ 不具备多态
- 方法调用 ✅ 动态绑定
二、类与对象基础(100% 会考)
1️⃣ 类 vs 对象
| 概念 | 含义 |
|---|---|
| 类 | 抽象模板 |
| 对象 | 具体实例 |
Car car = new Car();
2️⃣ 构造方法(Constructor)
public User(String name) {
this.name = name;
}
必背规则
- 方法名 = 类名
- 无返回值
- 默认构造会在没有定义任何构造器时自动生成
3️⃣ this 关键字
this.name = name;
作用:
- 区分成员变量和局部变量
- 调用当前类构造器
三、访问控制符(必背表)
| 修饰符 | 当前类 | 同包 | 子类 | 其他包 |
|---|---|---|---|---|
| public | ✅ | ✅ | ✅ | ✅ |
| protected | ✅ | ✅ | ✅ | ❌ |
| default | ✅ | ✅ | ❌ | ❌ |
| private | ✅ | ❌ | ❌ | ❌ |
📌 高频考点:
protected是包 + 子类
四、方法重写(Override)易错点
@Override
public void eat() {}
重写规则(必背)
- 方法名相同
- 参数列表相同
- 返回值类型 <= 父类
- 访问权限 不能更严格
- 不能重写
private / final / static
📌 面试雷点:
static 是“隐藏”,不是重写
五、抽象类 vs 接口(初阶必会)
抽象类(abstract)
abstract class Animal {
abstract void eat();
}
特点:
- 可有成员变量
- 可有构造方法
- 单继承
接口(interface)
interface Flyable {
void fly();
}
特点:
- 默认
public static final常量 - 方法默认
public abstract - 支持多实现
对比总结
| 维度 | 抽象类 | 接口 |
|---|---|---|
| 继承数量 | 单 | 多 |
| 成员变量 | 可以 | 常量 |
| 构造器 | 有 | 无 |
| 设计定位 | is-a | 能力 |
六、Object 类(所有类的祖宗)
必背方法
toString()
equals()
hashCode()
getClass()
equals vs ==
| 对比 | == | equals |
|---|---|---|
| 基本类型 | 值 | ❌ |
| 引用类型 | 地址 | 内容(可重写) |
📌 面试必杀句:
equals 和 hashCode 必须同时重写
七、final 关键字(三种用法)
final class A {}
final void method() {}
final int x = 10;
作用:
- 类:不可继承
- 方法:不可重写
- 变量:不可修改
八、组合优于继承(设计意识)
❌ 错误示例:
class Car extends Engine {}
✅ 正确示例:
class Car {
private Engine engine;
}
📌 原则:
能组合就不要继承
九、初学者必踩 5 大坑
1️⃣ 成员变量未初始化就使用
2️⃣ 忘记重写 equals / hashCode
3️⃣ 误以为成员变量有多态
4️⃣ 滥用继承
5️⃣ 构造方法当普通方法用
十、终极速记口诀(建议背)
封装藏细节,继承表关系
多态靠重写,运行看右边
接口表能力,组合赢一切
下一步你可以继续夯实 👇
我可以直接给你:
- 📕 面向对象进阶:设计原则(SOLID)
- 🔥 Java 面试必问 OOP 20 题
- 🧠 结合 Spring 的 OOP 落地理解
- 📝 一页纸 OOP 思维导图(背诵版)
你想往 面试 / 实战 / 进阶设计 哪个方向继续?