
前言在Java面向对象三大特性中继承是代码复用的核心基石而多态是程序高扩展性的灵魂。熟练掌握继承语法、方法重写、父子类类型转换再结合多态思想开发能彻底告别冗余重复代码写出结构清晰、易维护、易拓展的Java项目。本文从零带你吃透Java继承全套用法从基础继承实现、重写规则、上下转型再到多态核心概念与真实业务案例全程代码实战适合Java零基础进阶、巩固面向对象核心知识点。一、Java 继承使用初探1.1 继承核心作用继承就是子类复用父类中非私有属性和方法实现代码复用减少重复代码编写。父类超类/基类抽取公共通用成员子类派生类继承父类扩展独有功能Java只支持单继承一个子类只能有一个直接父类避免类层级混乱1.2 继承使用场景多个类存在重复属性、重复行为时统一抽取为父类其余类继承父类即可。例学生、老师、员工都拥有姓名、年龄、性别可抽取Person父类统一封装。二、类的继承与继承实现2.1 继承语法格式// 父类public class 父类名 {// 公共属性、公共方法}// 子类继承父类public class 子类名 extends 父类名 {// 子类独有属性、独有方法}关键字extends代表继承关系2.2 继承权限访问规则public任意位置均可访问protected同包、子类均可访问默认权限包权限仅同包访问private子类无法继承访问只能通过父类get/set方法调用2.3 基础继承代码实现父类公共人类public class Person {// 公共属性protected String name;protected int age;// 公共方法public void showInfo(){System.out.println(姓名name 年龄age);}}子类学生类 继承人类// 学生继承Person父类public class Student extends Person {// 学生独有属性private String stuId;// 学生独有方法public void study(){System.out.println(name正在认真学习);}}测试调用public class Test {public static void main(String[] args) {Student stu new Student();// 继承父类属性赋值stu.name 张三;stu.age 20;// 调用父类方法stu.showInfo();// 调用子类独有方法stu.study();}}三、继承与方法重写Override3.1 重写概念子类重新定义父类已存在的同名同参方法覆盖父类原有逻辑实现子类个性化业务逻辑。3.2 重写硬性规则方法名、参数列表、返回值必须和父类一致子类访问权限不能小于父类父类protected子类不能写private不能重写父类private、final、static方法重写建议加上注解Override编译自动校验语法3.3 重写实战案例在Student子类中重写父类showInfo方法public class Student extends Person {private String stuId;// 方法重写Overridepublic void showInfo() {System.out.println(学生姓名name 年龄age 学号stuId);}public void study(){System.out.println(name正在认真学习);}}调用时优先执行子类重写后的方法不再执行父类原方法。3.4 super关键字用法super.成员变量调用父类成员变量super.成员方法()调用父类原有方法super()调用父类无参构造必须放在子类构造第一行Overridepublic void showInfo() {// 先执行父类原有逻辑super.showInfo();// 再扩展子类逻辑System.out.println(学生专属信息);}四、继承与类型转换父子类转型继承体系中存在两种类型转换向上转型、向下转型是多态实现的基础。4.1 向上转型自动转型子类对象赋值给父类引用系统自动完成无需强转。语法父类 引用名 new 子类();特点只能调用父类定义的方法/属性执行的是子类重写后的方法无法调用子类独有方法// 向上转型Person person new Student();person.showInfo(); // 执行子类重写方法4.2 向下转型强制转型父类引用转回子类对象必须手动强转存在转型异常风险。语法子类 引用名 (子类)父类引用;4.3 转型安全判断 instanceof使用instanceof判断对象真实类型避免ClassCastException类型转换异常if(person instanceof Student){Student stu (Student) person;stu.study(); // 调用子类独有方法}五、多态核心知识点5.1 多态性概念同一个行为不同子类实现不同表现形式多态实现三大前提必须存在继承关系必须存在方法重写必须存在向上转型5.2 多态运行机制编译看左边父类引用运行看右边子类对象编译阶段检查父类是否存在该方法运行阶段优先执行子类重写方法5.3 多态优势代码通用性极强统一使用父类作为参数/返回值新增子类无需修改原有核心代码符合开闭原则简化代码逻辑降低项目维护成本六、继承多态综合实用案例需求场景编写动物体系父类Animal子类Dog、Cat统一实现叫声方法利用多态统一调用所有动物发声。1. 顶层父类 Animalpublic class Animal {public void shout(){System.out.println(动物发出叫声);}}2. 子类 Dog 继承并重写public class Dog extends Animal {Overridepublic void shout() {System.out.println(小狗汪汪汪);}// 子类独有方法public void guardHome(){System.out.println(狗狗看家护院);}}3. 子类 Cat 继承并重写public class Cat extends Animal {Overridepublic void shout() {System.out.println(小猫喵喵喵);}}4. 多态统一调度工具类public class AnimalUtil {// 多态统一接收所有动物子类public static void animalShout(Animal animal){animal.shout();// 向下转型调用独有方法if(animal instanceof Dog){((Dog) animal).guardHome();}}}5. 测试运行public class PolymorphicTest {public static void main(String[] args) {// 向上转型实现多态Animal dog new Dog();Animal cat new Cat();AnimalUtil.animalShout(dog);AnimalUtil.animalShout(cat);}}运行结果小狗汪汪汪狗狗看家护院小猫喵喵喵七、继承与多态总结继承extends实现复用父类代码搭建类层级结构重写子类重写父类方法实现功能个性化多态必备条件类型转换向上转型自动完成向下转型配合instanceof安全强转多态依托继承重写向上转型实现是项目解耦、代码拓展的核心思想开发规范通用功能抽父类特有功能放子类业务调用统一用父类多态接收文末寄语继承解决代码复用问题多态解决程序拓展问题二者结合是Java面向对象编程的重中之重。日常开发中实体类抽取父类、业务接口统一调度、框架底层源码大量运用继承与多态吃透这部分知识点才能真正迈入Java进阶开发行列。后续会持续更新Java接口、抽象类、内部类、static/final高级特性喜欢可以点赞收藏关注一起深耕Java后端技术