Java 继承与面向对象高级特性全解:重写、多态、抽象类、接口、Final彻底吃透 一、前言前面我们学完了 类、对象、封装、this掌握了 Java 面向对象的基础骨架。本篇进入 OOP 进阶核心继承、重写、super、多态、向上转型、抽象类、接口、Final 关键字。如果说「类与对象」是让我们会造模板那继承与多态就是让代码具备- 复用性不用重复写重复代码- 扩展性在原有功能上无痛升级- 规范性统一行为标准- 多态灵活性一套代码适配多种对象这是 面试最高频、框架底层最依赖 的一套知识体系也是从「会写代码」到「懂设计代码」的分水岭。二、继承extends——代码复用的核心2.1 什么是继承继承让一个子类自动拥有父类的 非私有属性和方法并可以在此基础上扩展新功能。- 父类超类/基类通用、抽象的公共模板- 子类派生类在父类基础上扩展、个性化核心价值消除重复代码建立层级关系。生活逻辑- 动物父类吃饭、睡觉- 狗子类继承吃饭、睡觉 新增吠叫- 猫子类继承吃饭、睡觉 新增抓老鼠2.2 继承语法2.3 Java 继承硬性规则必考1. Java 只支持单继承一个类只能有一个直接父类2. 支持多层继承A→B→C祖孙继承3. 私有 private 无法继承4. 构造方法不能被继承5. 静态资源属于类不存在继承重写单继承目的避免多继承带来的菱形冲突问题多个父类同名方法不知道继承谁2.4 继承权限范围总结- public / 默认包权限 / protected 可继承- private 不可继承子类无法直接访问2.5 继承完整示例父类通用模板子类扩展功能测试三、方法重写Override——继承后的能力升级3.1 重写概念子类对父类已有的方法重新实现逻辑。场景父类通用逻辑不满足子类个性化需求需要覆盖升级。3.2 重写严格语法规则1. 方法名、参数列表、返回值协变返回必须一致2. 访问权限不能更严格public protected 默认 private3. 不能重写 private / static / final / 构造方法4. 异常范围不能扩大3.3 Override 注解强制校验推荐所有重写都加 Override编译器自动校验是否符合重写规则杜绝手写错误。3.4 重写实战四、super 关键字——继承专属4.1 super 含义super代表父类对象4.2 super 三大用法对标 this1. 区分父类与子类重名成员变量2. 调用父类重写前的方法3. 调用父类构造方法- super() 必须在子类构造第一行- 创建子类对象默认先调用父类无参构造4.3 继承构造执行顺序先父后子初始化永远先加载父类构造再执行子类构造。五、多态OOP三大特性最终形态5.1 多态核心思想同一个行为不同对象表现不同结果一句话父类引用指向子类对象实现程序高扩展。5.2 多态实现三前提1. 存在 继承2. 存在 方法重写3. 父类引用指向子类对象向上转型5.3 向上转型多态核心形态示例5.4 多态运行机制- 编译看左边编译阶段遵循父类方法- 运行看右边运行阶段执行子类重写方法5.5 多态完整演示父类子类1子类2多态调用5.6 多态优势1. 参数统一方法形参写父类所有子类都能传入2. 代码无需改动新增子类自动适配符合开闭原则3. 极大提升扩展性5.7 向下转型解决多态无法调用子类独有方法多态向上转型后只能调用父类方法子类独有方法不可见。需要强制向下转型注意转型错误会报 ClassCastException六、抽象类 abstract——模板规范化6.1 为什么要有抽象类普通父类可以 new 对象无约束。抽象类强制子类必须完成某些方法统一规范。6.2 抽象类 抽象方法- 抽象类被 abstract 修饰的类- 抽象方法只有方法声明没有方法体6.3 抽象类核心规则1. 抽象类不能 new 对象2. 包含抽象方法的类一定是抽象类3. 子类继承抽象类必须重写所有抽象方法否则子类也必须抽象4. 抽象类可以有普通方法、构造、成员变量、静态方法6.4 适用场景抽取通用模板强制子类实现个性化行为七、接口 interface——行为标准、最高规范7.1 接口是什么接口是纯粹的行为规范、协议、标准- 抽象类模板 部分实现- 接口纯标准、纯抽象7.2 接口定义7.3 类实现接口implements7.4 接口超级特性区别于继承1. 类可以多实现接口弥补单继承缺陷2. 接口与接口可以多继承3. JDK8支持默认方法、静态方法4. JDK9支持私有方法7.5 接口核心规则1. 接口不能实例化2. 实现类必须重写所有抽象方法3. 接口变量默认 public static final4. 接口方法默认 public abstract7.6 接口 vs 抽象类面试必背1. 抽象类有层级关系、is-a2. 接口行为能力、can-do3. 抽象类单继承接口多实现4. 抽象类有构造接口无构造八、Final 关键字——不可修改的最终态三大用法修饰变量、修饰方法、修饰类8.1 final 修饰变量- 基本类型值不可改常量- 引用类型地址不可改内部属性可改8.2 final 修饰方法不能被重写8.3 final 修饰类不能被继承如 String、Math 都是 final 类九、四大特性联动总结封装/继承/多态/抽象1. 封装保护数据、隐藏细节、安全可控2. 继承复用代码、建立层级3. 重写子类个性化升级4. 多态统一调用、动态适配、高扩展5. 抽象类半模板半规范6. 接口纯行为规范、解耦、多扩展十、新手高频坑点总结1. 继承构造先父后子子类构造默认隐含 super()2. 重写不能改权限、不能改方法名参数3. 多态编译看左、运行看右4. 向上转型丢失子类独有方法需要向下转型5. 抽象类不能 new接口不能 new6. static 属于类不存在重写、多态7. private 方法不能重写十一、全文总结1. 继承 extends解决代码复用构建层级体系2. 重写 override子类覆盖父类逻辑实现个性化3. super访问父类成员、构造复用4. 多态父引子对象实现一套接口适配多类5. 抽象类 abstract半抽象模板强制子类实现抽象方法6. 接口 interface纯行为规范支持多实现解耦设计7. final锁定变量、方法、类禁止修改与继承掌握本篇你已经完全掌握 Java OOP 全部核心可以无缝进入集合、异常、IO、线程、Spring 框架底层学习。