Этот вопрос рассматривает механизмы наследования и взаимодействия с родительским классом с помощью ключевого слова super.
Ключевое слово super в Java используется для вызова конструктора или методов родительского класса, а также для доступа к скрытым полям. Это необходимо при переопределении методов или для точного указания, что используется родительская версия метода или свойства.
Использование super:
Вызов конструктора родительского класса:
class Parent {
Parent(String name) {
System.out.println("Parent constructor: " + name);
}
}
class Child extends Parent {
Child() {
super("ParentName"); // Вызов конструктора родителя
System.out.println("Child constructor");
}
}Доступ к методу родительского класса:
class Parent {
void display() {
System.out.println("Parent method");
}
}
class Child extends Parent {
void display() {
super.display(); // Вызов метода родителя
System.out.println("Child method");
}
}Доступ к скрытым полям родительского класса:
class Parent {
String name = "ParentName";
}
class Child extends Parent {
String name = "ChildName";
void printNames() {
System.out.println(super.name); // Обращение к полю родителя
System.out.println(this.name); // Обращение к полю текущего класса
}
}Когда использовать:
Для явного указания, что нужно обратиться к родительскому элементу (полю, методу или конструктору).
Когда требуется совместное использование функционала родительского и дочернего классов.
Вывод:super помогает управлять наследованием и обеспечивает доступ к функционалу родительского класса, что делает взаимодействие между классами более понятным и управляемым.