super用于调用父类成员,可访问属性、方法和构造器。1. 子类重写方法后可用super.method()调用父类方法;2. 构造器中通过super()调用父类构造器,须位于首行;3. 子类同名字段隐藏父类字段时,用super.field访问父类属性;4. super不可在静态上下文中使用,且super()与this()不能共存于同一构造器首行。

在Java中,super关键字用于访问父类的成员,包括属性、方法和构造器。当你在子类中重写了父类的方法,但仍想调用父类中的原始实现时,super就显得非常有用。下面详细介绍如何使用super来调用父类的方法。
当子类重写了一个方法后,如果仍需要执行父类中该方法的逻辑,可以使用 super.methodName() 来调用。
示例:
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");
}
}输出结果:
立即学习“Java免费学习笔记(深入)”;
Animal makes a sound Dog barks
这里,super.makeSound() 明确调用了父类 Animal 的方法,再追加子类自己的行为。
子类构造器可以通过 super() 调用父类的构造器,必须放在构造器的第一行。
示例:
class Person {
String name;
Person(String name) {
this.name = name;
System.out.println("Person constructed: " + name);
}
}
class Student extends Person {
int studentId;
Student(String name, int id) {
super(name); // 调用父类构造器
this.studentId = id;
System.out.println("Student ID: " + id);
}
}创建 Student 对象时,会先初始化父类的 name 属性,再初始化子类的 studentId。
如果子类定义了与父类同名的字段,可以使用 super.fieldName 访问父类的字段。
示例:
class Parent {
String info = "Parent info";
}
class Child extends Parent {
String info = "Child info";
void printInfo() {
System.out.println(super.info); // 输出:Parent info
System.out.println(this.info); // 输出:Child info
}
}基本上就这些。合理使用 super 可以让继承关系更清晰,代码复用更高效。理解其在方法、构造器和属性访问中的作用,是掌握Java面向对象编程的关键一步。不复杂但容易忽略细节。
以上就是在Java中如何使用super关键字访问父类_OOP父类方法调用方法分享的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号