super用于子类访问父类成员,包括调用父类构造器、方法和属性。1. 子类构造器中通过super()调用父类构造器,必须位于首行;2. 重写方法时用super.方法名()调用父类原方法;3. 子类中通过super.属性名访问父类同名属性。

super 是 Java 中的一个关键字,主要用于在子类中访问父类的成员(包括属性、方法和构造器)。它在继承机制中扮演重要角色,帮助开发者明确区分子类和父类之间的同名成员,并实现对父类功能的复用。以下是 super 的主要用途:
1. 调用父类的构造器
在子类的构造器中,可以使用 super() 调用父类的构造方法,以便完成父类的初始化工作。 需要注意的是,super() 必须出现在子类构造器的第一行。 如果子类没有显式调用父类构造器,Java 会自动调用父类无参构造器;若父类没有无参构造器,则必须手动使用 super(参数) 调用有参构造器。示例:
立即学习“Java免费学习笔记(深入)”;
商品查询功能提供了一个快速查看商品的途径。商品查询分为基本查询和高级查询。基本查询:提供关键字和商品大类两种条件的查询,用户可以只填写关键字或者选择商品大类或者关键字和商品大类都填写来查询商品。高级查询:提供关键字,商品大类,商品小类,商品价格范围四种条件的查询,用户可以任意填写其中一种或几种的查询条件来查询想要了解的商品信息。商品查询功能大大的方便了用户,提高了网站的用户体验。(5)帮助系统模块
Animal(String name) {
System.out.println("Animal 构造器: " + name);
}
}
class Dog extends Animal {
Dog() {
super("Puppy"); // 调用父类有参构造器
}
}
2. 访问父类的方法
当子类重写了父类的某个方法时,如果仍想调用父类的原始实现,可以使用 super.方法名()。 这在需要扩展父类行为而不是完全覆盖时非常有用。示例:
立即学习“Java免费学习笔记(深入)”;
class Animal {void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
super.makeSound(); // 先调用父类方法
System.out.println("Dog barks");
}
}
3. 访问父类的属性
当子类和父类存在同名字段时,可以使用 super.属性名 明确访问父类的属性。 否则,默认访问的是子类中的属性。示例:
立即学习“Java免费学习笔记(深入)”;
class Animal {String type = "unknown";
}
class Dog extends Animal {
String type = "mammal";
void printType() {
System.out.println("子类 type: " + type);
System.out.println("父类 type: " + super.type);
}
}
基本上就这些。super 关键字让继承关系更清晰,能有效控制父子类之间的调用逻辑,是面向对象编程中处理继承的重要工具。正确使用 super 可以避免命名冲突,提升代码可读性和维护性。不复杂但容易忽略细节。









