151
社区成员
发帖
与我相关
我的任务
分享封装、继承、多态是 Java 面向对象编程(OOP)的三大核心特性,是理解类与对象、设计优雅代码的基石,也是所有 Java 学习者必须牢固掌握的核心知识点。
一、封装(Encapsulation)
封装是将数据和操作数据的方法绑定在一起,并对外部隐藏内部实现细节,只暴露安全的访问接口。
核心思想
• 私有化成员变量(private)
• 提供公共的 getter / setter 方法访问和修改
• 控制访问权限,避免外部随意篡改数据
示例
public class User {
// 私有变量,外部无法直接访问
private String name;
private int age;
// 公共方法,提供可控访问
public String getName() {
return name;
}
public void setAge(int age) {
// 可以加入校验逻辑
if (age < 0 || age > 150) {
throw new RuntimeException("年龄不合法");
}
this.age = age;
}
}
封装的好处
1. 保护数据安全性,防止非法赋值
2. 降低耦合,内部修改不影响外部调用
3. 提高代码可维护性和可读性
二、继承(Inheritance)
继承是子类继承父类的属性和方法,实现代码复用,并可扩展新功能。
Java 只支持单继承,一个类只能有一个直接父类。
关键字
• extends:继承父类
• super:调用父类构造方法、成员变量或方法
示例
// 父类
class Animal {
public void eat() {
System.out.println("吃东西");
}
}
// 子类
class Dog extends Animal {
// 新增方法
public void bark() {
System.out.println("汪汪叫");
}
}
继承的特点
1. 子类拥有父类非私有属性和方法
2. 子类可以重写(override)父类方法
3. 子类可扩展自己独有的功能
4. 提高代码复用性,减少重复代码
三、多态(Polymorphism)
多态是同一行为,在不同子类上表现出不同形态,是面向对象最灵活的特性。
多态建立在继承 + 方法重写 + 父类引用指向子类对象的基础上。
多态的格式
父类类型 引用名 = new 子类类型();
示例
Animal animal = new Dog();
animal.eat(); // 执行 Dog 类重写后的 eat 方法
多态的核心体现
• 编译看左边,运行看右边
编译时类型是父类,运行时执行子类重写的方法
多态的好处
1. 极大提高程序扩展性和可维护性
2. 统一接口,不同实现
3. 框架底层大量依赖多态设计
四、三大特性对比与关系
1. 封装是基础,保证数据安全
2. 继承是扩展,实现代码复用
3. 多态是灵活,基于前两者实现最高级的设计能力
三者结合,才能真正实现高内聚、低耦合的优秀代码结构。
五、实际开发意义
• 封装:让类更安全、更易于维护
• 继承:减少重复代码,统一公共逻辑
• 多态:实现可插拔式设计,方便替换实现类
Spring、MyBatis、Tomcat 等所有 Java 技术框架,底层都大量使用这三大特性。
六、总结
封装、继承、多态是 Java 面向对象的三大基石:
• 封装保护数据、隐藏实现;
• 继承复用代码、扩展功能;
• 多态统一接口、灵活扩展。
熟练掌握这三大特性,不仅能写出规范、优雅的 Java 代码,更是理解框架、进阶中高级开发的必备基础。
如果你还想继续,我可以再写一篇关于 IO流、Lambda & Stream、线程池、动态代理、单例模式 等主题。