super
Обращается к родительскому классу: вызывает его конструктор или его версию метода.
Доступно с: Java 1.0
Синтаксис
super(arguments); super.method();Примеры
Вызов конструктора родителя:
class Animal {
String name;
Animal(String name) {
this.name = name;
}
}
class Dog extends Animal {
Dog(String name) {
super(name);
}
}
void main() {
IO.println(new Dog("Rex").name);
}Результат:
RexДополнить метод родителя, а не заменить его целиком:
class Report {
String render() {
return "Report";
}
}
class SalesReport extends Report {
@Override
String render() {
return super.render() + ": sales";
}
}
void main() {
IO.println(new SalesReport().render());
}Результат:
Report: salesПримечания
Если у родителя нет конструктора без параметров, наследник обязан вызвать super(...) явно — иначе ошибка «constructor Animal in class Animal cannot be applied to given types». До Java 22 super(...) мог стоять только первой строкой конструктора; с Java 25 перед ним можно проверять аргументы, но не обращаться к this.
См. также
В учебнике
- Наследование — Наследование классов в Java: extends, protected, вызов super(...), переопределение методов и аннотация @Override.