Назад к вопросам
Junior
68
questionbank
Как класс-наследник использует функциональность класса-родителя?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Через наследование (inheritance): класс-наследник получает публичные и защищенные члены класса-родителя.
- Прямой доступ: К публичным и защищенным полям и методам родителя можно обращаться напрямую по их имени внутри класса-наследника.
- Ключевое слово
super: Используется для вызова конструктора родителя или для обращения к переопределенным методам/полям родителя, когда в дочернем классе есть одноименные члены. - Переопределение (overriding): Методы родителя (не
final) можно переопределить в классе-наследнике, изменив их поведение.
// Пример родительского класса
class Parent {
protected int parentValue;
public Parent(int value) {
this.parentValue = value;
}
public void displayParentValue() {
System.out.println("Parent value: " + parentValue);
}
public final void cannotBeOverridden() {
System.out.println("This method cannot be overridden.");
}
}
// Пример класса-наследника
class Child extends Parent {
private int childValue;
public Child(int parentValue, int childValue) {
super(parentValue); // Вызов конструктора родителя
this.childValue = childValue;
}
// Переопределение метода родителя
@Override
public void displayParentValue() {
System.out.println("Overridden parent value: " + parentValue); // Доступ к защищенному полю родителя
}
public void displayChildValue() {
System.out.println("Child value: " + childValue);
}
public void callParentMethod() {
super.displayParentValue(); // Вызов метода родителя через super
}
}