封装通过访问控制隐藏类的内部细节,仅暴露必要方法,确保数据安全并提升可维护性;继承允许子类复用父类属性和方法,形成类层级结构,减少代码重复;多态基于继承和方法重写,使同一操作在不同对象上表现不同,提升扩展性与灵活性。三者共同构建Java面向对象编程基础,支持高内聚、低耦合的设计原则。

封装、继承与多态是Java面向对象编程的三大核心特性,它们共同支撑起代码的可维护性、可扩展性和灵活性。
封装:隐藏细节,保护数据
封装是指将对象的属性和行为包装在类中,通过访问控制(如private、protected、public)限制对内部成员的直接访问。对外只暴露必要的方法,防止外部随意修改内部状态。
例如,一个Person类可以将age设为private,提供公共的getter和setter方法,在设置年龄时加入逻辑校验:
- 避免无效数据,比如年龄不能为负数
- 提高安全性,调用者无法绕过业务规则
- 便于后期修改内部实现而不影响外部调用
继承:代码复用,建立关系
继承允许一个类(子类)获取另一个类(父类)的属性和方法,使用extends关键字实现。它体现“is-a”关系,比如学生是一个人。
立即学习“Java免费学习笔记(深入)”;
通过继承:
- 减少重复代码,共用父类功能
- 形成类的层级结构,便于分类管理
- 子类可添加新功能或重写已有方法
注意Java不支持多继承(一个类不能继承多个类),但可以通过接口实现类似效果。
多态:同一操作,不同表现
多态指同一个引用类型在不同实例上调用相同方法时,表现出不同的行为。它依赖于继承和方法重写,运行时决定具体执行哪个版本的方法。
例如,父类Animal有makeSound()方法,子类Dog和Cat分别重写该方法。当用Animal引用来指向不同子类对象时,调用makeSound()会自动执行对应子类的实现。
- 提升程序扩展性,新增子类无需修改原有调用逻辑
- 支持接口编程,降低模块间耦合度
- 实际调用的方法由对象真实类型决定,而非引用类型
基本上就这些。理解这三者的关系,能帮助写出更清晰、易维护的Java代码。封装管的是“怎么藏”,继承解决“怎么传”,多态关注“怎么变”。


