Назад к вопросам
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
    }
}