Sobes.tech
Junior

Kā mantojo klase izmanto vecāku klases funkcionalitāti?

sobes.tech AI

Atbilde no AI

Caur mantošanu (inheritance): mantojošais klases loceklis saņem publiskos un aizsargātos vecāklases locekļus.

  • Tieša piekļuve: Pie publiskajiem un aizsargātajiem vecāklases lauciņiem un metodēm var tieši piekļūt to nosaukuma dēļ mantojošajā klasē.
  • super atslēgvārds: To izmanto, lai izsauktu vecāklases konstruktoru vai piekļūtu pārrakstītajām vecāklases metodēm/locekļiem, kad bērna klasē ir vienādi nosaukumi.
  • Pārrakstīšana (overriding): Vecāklases metodes (ne final) var pārrakstīt mantojošajā klasē, mainot to uzvedību.
// Vecāklases piemērs
class Parent {
    protected int parentValue;

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

    public void displayParentValue() {
        System.out.println("Vecāklases vērtība: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Šo metodi nevar pārrakstīt.");
    }
}

// Mantojošās klases piemērs
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Vecāklases konstruktora izsaukšana
        this.childValue = childValue;
    }

    // Vecāklases metodes pārrakstīšana
    @Override
    public void displayParentValue() {
        System.out.println("Pārrakstīta vecāklases vērtība: " + parentValue); // Piekļuve aizsargātajam vecāklases laukam
    }

    public void displayChildValue() {
        System.out.println("Bērna vērtība: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Vecāklases metodes izsaukšana ar super
    }
}