Sobes.tech
Junior

Jak dědičná třída využívá funkčnost třídy rodiče?

sobes.tech AI

Odpověď od AI

Děděním: potomek získává veřejné a chráněné členy třídy rodiče.

  • Přímý přístup: K veřejným a chráněným polím a metodám třídy rodiče lze přímo přistupovat podle jejich jména uvnitř třídy potomka.
  • Klíčové slovo super: Používá se k volání konstruktoru rodiče nebo k přístupu k přepsaným metodám/pólům rodiče, když v třídě potomka jsou členové se stejným jménem.
  • Přepsání (overriding): Metody rodiče (které nejsou final) lze přepsat v třídě potomka, čímž se změní jejich chování.
// Příklad třídy rodiče
class Parent {
    protected int parentValue;

    public Parent(int value) {
        this.parentValue = value;
    }

    public void displayParentValue() {
        System.out.println("Hodnota rodiče: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Tato metoda nemůže být přepsána.");
    }
}

// Příklad třídy potomka
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Volání konstruktoru rodiče
        this.childValue = childValue;
    }

    // Přepsání metody rodiče
    @Override
    public void displayParentValue() {
        System.out.println("Přepsaná hodnota rodiče: " + parentValue); // Přístup k chráněnému poli rodiče
    }

    public void displayChildValue() {
        System.out.println("Hodnota dítěte: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Volání metody rodiče přes super
    }
}