super用于明确调用父类成员。1. 子类构造方法中通过super()调用父类构造方法,必须位于首行;2. 用super.method()访问被重写的父类方法,可复用并增强父类功能;3. 用super.field访问被隐藏的父类字段,解决同名属性冲突。super确保在继承体系中精准调用父类成员,提升代码可控性与清晰度。

在Java中,super关键字是一个非常重要的概念,主要用于处理继承关系中的类。它可以帮助子类访问父类的成员(包括构造方法、属性和方法),特别是在存在重写或隐藏的情况下,明确指定调用父类的实现。
子类在创建对象时,会默认调用父类的无参构造方法。但如果父类没有无参构造方法,就必须显式使用super()来调用父类的有参构造方法。
例如:
<font face="Courier New">
class Animal {
String name;
Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
Dog(String name) {
super(name); // 调用父类构造方法
}
}
</font>当子类重写了父类的方法,如果仍想调用父类原来的实现,可以使用super.methodName()。
立即学习“Java免费学习笔记(深入)”;
示例:
<font face="Courier New">
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");
}
}
</font>如果子类定义了与父类同名的字段,父类的字段会被隐藏。此时可以用super.fieldName访问父类的字段。
例子:
<font face="Courier New">
class Animal {
String name = "Animal";
}
class Dog extends Animal {
String name = "Dog";
void printNames() {
System.out.println(super.name); // 输出 Animal
System.out.println(this.name); // 输出 Dog
}
}
</font>基本上就这些。super的核心作用是“明确指向父类”,帮助我们在继承体系中精确控制调用来源。理解super有助于写出更清晰、可控的继承代码,尤其是在复杂层级结构中。不复杂但容易忽略细节。
以上就是如何在Java中理解super关键字的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号