Java 面向对象三大特性(封装、继承、多态)超详细讲解|面试+开发必备
2026/5/16 20:01:04 网站建设 项目流程

Java 面向对象三大特性(封装、继承、多态)超详细讲解|面试+开发必备

大家好,这篇文章专门给 Java 初学者整理面向对象三大核心特性:封装、继承、多态,内容包含概念、语法、代码示例、面试考点、易错点,完全对标课堂笔记与企业开发规范,适合发 CSDN、做学习总结、备战笔试面试。

前言

面向对象编程(OOP)是 Java 的核心思想,封装、继承、多态是三大基石。

- 封装:保证数据安全、隐藏实现细节

- 继承:提升代码复用、建立类层次

- 多态:提升程序灵活、统一接口调用

本文从基础→语法→实战→面试一站式讲透。

一、封装(Encapsulation)

1. 什么是封装?

把属性私有化,对外只提供公共访问方法,外部不能直接篡改数据,只能通过规范接口读写。

一句话:该藏的藏,该露的露。

2. 封装的实现步骤

1. 属性私有化:用 private 修饰

2. 提供公共 getter/setter- getXxx() :获取属性

- setXxx() :设置属性(可加校验)

3. 外部通过方法访问,不直接操作属性

3. 代码示例

java

public class Student {

// 1. 属性私有化

private String name;

private int age;

// 2. getter 获取值

public String getName() {

return this.name;

}

// 3. setter 赋值(可加校验)

public void setAge(int age) {

if (age < 0 || age > 150) {

System.out.println("年龄不合法!");

return;

}

this.age = age;

}

public int getAge() {

return this.age;

}

}

4. 封装的好处

✅ 数据安全,防止非法赋值

✅ 便于维护,内部修改不影响外部

✅ 提高代码复用性、规范性

5. 面试常问

- 为什么要用 private + getter/setter ,不直接用 public ?

答:控制访问权限、可加校验、保护数据完整性。

二、继承(Inheritance)

1. 什么是继承?

类与类之间满足 is-a 关系,子类 extends 父类,复用父类属性与方法,并可扩展自身功能。

语法:

java

class 子类 extends 父类 { }

示例:

Dog extends Animal 、 Student extends Person

2. 继承的核心特点

- Java 单继承:一个类只能有一个直接父类

- 可多级继承:A→B→C

- 构造方法不能被继承

- 父类私有成员( private )不能被继承

3. 方法重写(Override)【面试高频】

子类重新实现父类已有的方法。

重写规则:

1. 方法名、参数列表、返回值类型完全相同

2. 子类权限 ≥ 父类( public > protected > default > private )

3. 不能抛出更宽泛的异常(了解即可)

java

class Animal {

public void eat() {

System.out.println("动物吃东西");

}

}

class Dog extends Animal {

// 重写

@Override

public void eat() {

System.out.println("狗吃骨头");

}

}

4. 方法重写 vs 方法重载(面试必背)

特性 重写(Override) 重载(Overload)

位置 父子类之间 同一个类中

方法名 相同 相同

参数列表 相同 不同

返回值 相同 无要求

权限 不能更严格 无要求

5. super 关键字【重点】

- super() :调用父类构造(必须在第一行)

- super.成员 :访问父类属性/方法

6. 继承中对象创建过程

1. 先加载父类,再加载子类

2. 先初始化父类属性,再执行父类构造

3. 再初始化子类属性,执行子类构造

三、多态(Polymorphism)

1. 什么是多态?

父类引用指向子类对象,同一个方法在不同子类有不同表现。

语法:

java

父类 引用 = new 子类();

示例:

java

Animal a = new Dog();

a.eat(); // 执行 Dog 的 eat()

2. 多态的运行规则

- 编译看左边(父类):只能调用父类拥有的方法

- 运行看右边(子类):若子类重写,执行子类方法

3. 类型转换

1. 向上转型(自动):子类 → 父类

2. 向下转型(强制):父类 → 子类

java

Animal a = new Dog();

Dog d = (Dog) a;

4. 避免 ClassCastException

用 instanceof 判断类型:

java

if (a instanceof Dog) { ... }

5. 多态的三大应用场景

1. 多态数组:存父类+所有子类对象

2. 方法形参:接收父类+所有子类实参

3. 方法返回值:返回父类+任意子类对象

6. 多态好处

✅ 统一接口、屏蔽子类差异

✅ 代码更通用、易扩展

✅ 符合开闭原则

四、三大特性总结(面试可直接背)

1. 封装:数据安全、隐藏细节 → 基础

2. 继承:代码复用、层级结构 → 桥梁

3. 多态:灵活扩展、动态绑定 → 目标

一句话记忆:

封装保安全,继承提复用,多态强扩展。

五、常见面试题(直接背答案)

1. 面向对象三大特性?

答:封装、继承、多态。

2. 重载和重写的区别?

答:看上面表格。

3. this 和 super 区别?

答:this 指向本类对象;super 指向父类对象。

4. Java 继承特点?

答:单继承、可多级继承。

5. 多态的前提?

答:继承 + 方法重写 + 父类引用指向子类对象。

结语

这篇文章把封装、继承、多态从课堂笔记整理成CSDN 标准博客,结构清晰、示例完整、面试点全覆盖,适合 Java 初学者夯实基础、复习备考。

如果对你有帮助,欢迎 点赞、收藏、关注,后续持续更新 Java 基础、集合、JVM、并发等硬核干货!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询