一句话总结它的作用super 代表的是“父类”或者叫超类、基类空间用来在子类中访问父类的成员属性、方法、构造器。1. 使用场景一用 super 调用父类的构造器最常用当你在 new 一个子类对象时子类的构造器必须先调用父类的构造器确保从父类继承过来的属性能够被正确初始化。 核心规则隐式调用如果你在子类的构造器里没有手动写 super()Java 编译器会在第一行自动帮你加上 super();调用父类的无参构造器。classFather{publicFather(){System.out.println(1. 父类无参构造器被调用);}}classSonextendsFather{publicSon(){// 编译器在这里偷偷加了一行super();System.out.println(2. 子类构造器被调用);}}当你 new Son() 时控制台会先打印 1再打印 2。 显式调用父类没有无参构造器怎么办如果父类只定义了带参数的构造器编译器就不会自动加 super() 了。这时子类必须手动显式调用 super(参数)否则编译直接报错。classFather{StringlastName;// 父类只有带参构造器publicFather(StringlastName){this.lastNamelastName;}}classSonextendsFather{intage;publicSon(StringlastName,intage){super(lastName);// 必须手动调用父类带参构造器且必须写在第一行this.ageage;}}2. 使用场景二用 super 区分同名的属性成员变量如果子类起了一个和父类一模一样的变量名父类的变量就会被“隐藏”。此时如果你想在子类中访问父类的那个变量就需要加上 super. 前缀。classFather{Stringname张三老爸;}classSonextendsFather{Stringname张小三儿子;publicvoidshow(){System.out.println(name);// 打印张小三儿子 —— 默认就近原则System.out.println(this.name);// 打印张小三儿子 —— 显式指定当前子类System.out.println(super.name);// 打印张三老爸 —— 通过 super 突破限制访问父类}}3. 使用场景三用 super 调用父类被重写Override的方法在面向对象开发中子类经常会重写父类的方法。但有时候子类并不想完全抛弃父类的方法而是想在父类方法的基础上进行“功能增强”。这时就可以用 super.方法名()。classRobot{publicvoidwork(){System.out.println(开机开始扫描环境...);}}classCleaningRobotextendsRobot{Overridepublicvoidwork(){super.work();// 先让父类做它该做的事开机和扫描System.out.println(开始拖地、擦桌子...);// 子类特有的拓展功能}}