Java 面向对象三大特性详解 Java 面向对象三大特性详解一、封装Encapsulation 核心概念封装是将数据属性和操作数据的方法行为捆绑在一起对外隐藏实现细节仅通过指定的接口进行访问。 通俗理解就像一部智能手机内部隐藏电路板、电池、芯片等复杂组件封装在机身内部对外暴露屏幕、按键、接口等作为用户交互入口保护机制用户无法直接操作内部元件防止误操作损坏设备 Java 实现方式私有化成员变量使用private关键字提供公共访问方法通过getter/setter方法添加业务逻辑在方法中实现数据验证和业务规则 代码示例/** * Person 类 - 封装示例 * 演示如何通过封装保护数据安全 */publicclassPerson{// 私有成员变量 - 外部无法直接访问privateStringname;privateintage;// Getter 方法 - 提供只读访问publicStringgetName(){returnname;}// Setter 方法 - 提供受控的写入访问publicvoidsetName(Stringname){this.namename;}// 带业务逻辑的 Setter - 数据验证publicvoidsetAge(intage){if(age0age150){this.ageage;}else{thrownewIllegalArgumentException(年龄必须在 1-149 之间);}}publicintgetAge(){returnage;}}✅ 封装的优势优势说明数据安全防止外部代码随意修改内部状态代码维护性内部实现可独立修改不影响外部调用隐藏复杂性用户只需关注接口无需了解实现细节代码复用封装好的类可在多处重复使二、继承Inheritance 核心概念继承是子类复用父类已有的代码并能扩展新功能实现代码不重复的机制。 通俗理解就像父子遗传基因继承儿子天生继承父亲的长相、性格已有能力个性发展儿子又有自己的特长新增功能无需重来不用重新从零长一遍 Java 实现方式定义父类抽取公共属性和方法作为通用模板创建子类使用extends关键字继承父类直接复用子类可以直接使用父类内容扩展功能子类可以添加自己的属性和方法 代码示例/** * Animal 类 - 父类示例 * 演示如何定义公共特征供子类继承 */classAnimal{publicvoideat(){System.out.println(动物会吃东西);}}/** * Dog 类 - 子类示例 * 演示如何继承父类并扩展新功能 */classDogextendsAnimal{// 狗自己独有的方法publicvoidbark(){System.out.println(狗会汪汪叫);}}/** * Test 类 - 使用示例 * 演示继承的实际应用 */publicclassTest{publicstaticvoidmain(String[]args){DogdognewDog();dog.eat();// 继承父类的方法dog.bark();// 自己扩展的方法}}✅ 继承的优势与局限类别项目详细说明优点1. 代码复用子类可以直接使用父类的属性和方法减少重复代码2. 提高开发效率基于现有类快速构建新类简化开发流程3. 建立清晰的类层次结构通过继承关系形成树状结构便于理解和维护缺点1. 破坏封装性子类可能过度依赖父类实现细节导致耦合度增加2. 继承层次过深多层继承会使代码结构复杂增加理解和维护难度3. 灵活性受限继承关系在编译时确定运行时无法动态改变三、多态Polymorphism 核心概念多态是父类引用指向子类对象同一行为在不同子类中有不同表现。一句话概括一个名字多种形态。 通俗理解就像“吃饭” 这个动作人吃饭用筷子小狗吃饭用嘴啃小猫吃饭用舌头舔动作名称都是「吃饭」但执行效果不一样这就是多态。 Java 实现前提必须同时满足以下三个条件存在继承关系子类继承父类方法重写子类重写Override父类方法父类引用指向子类对象使用父类类型声明但实际创建子类对象 代码示例/** * Animal 类 - 父类 * 定义公共方法供子类重写 */classAnimal{publicvoideat(){System.out.println(动物吃饭);}}/** * Dog 类 - 子类1 * 重写父类方法实现特定行为 */classDogextendsAnimal{Overridepublicvoideat(){System.out.println(小狗啃骨头);}}/** * Cat 类 - 子类2 * 重写父类方法实现特定行为 */classCatextendsAnimal{Overridepublicvoideat(){System.out.println(小猫吃鱼);}}/** * Test 类 - 多态测试 * 演示父类引用指向不同子类对象时的多态行为 */publicclassTest{publicstaticvoidmain(String[]args){// 父类引用指向子类对象Animala1newDog();Animala2newCat();a1.eat();// 执行 Dog 的 eat小狗啃骨头a2.eat();// 执行 Cat 的 eat小猫吃鱼}}✅ 多态的优势优势说明程序扩展性强新增子类不用修改原有代码符合开闭原则代码灵活性高同一接口可以有多种实现提高代码适应性降低耦合度调用方只需关注父类接口不依赖具体子类提高可维护性业务逻辑与具体实现分离便于维护和测试 三大特性关系总结特性核心思想主要作用相互关系封装藏内部露接口保护数据隐藏细节为继承和多态提供安全保障继承子承父业代码复用减少重复代码建立类层次是多态实现的基础多态一个行为多种实现灵活扩展降低耦合继承是多态的基础封装是保障三者关系继承是多态的基础封装是保障三者配合构成 Java 面向对象核心共同实现代码的可维护性、可扩展性和可复用性。