Sobes.tech
Junior

Kuidas pärandatud klass kasutab vanema klassi funktsionaalsust?

sobes.tech AI

Vastus AI-lt

Päriluse (inheritance) kaudu: päriliku klassi liige saab avalikud ja kaitstud klassi liikmed.

  • Otsejuurdepääs: Avalike ja kaitstud väljadele ning meetoditele saab otse viidata nende nime kaudu pärilikus klassis.
  • super märksõna: Seda kasutatakse vanemklassi konstruktorite kutsumiseks või vanemklassi üle kirjutatud meetodite/loogikate juurde pääsemiseks, kui lapsklassis on samanimelised liikmed.
  • Üle kirjutamine (overriding): Vanemklassi meetodeid (välja arvatud final) saab pärilikus klassis üle kirjutada, muutes nende käitumist.
// Vanemklassi näide
class Parent {
    protected int parentValue;

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

    public void displayParentValue() {
        System.out.println("Vanemklassi väärtus: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Seda meetodit ei saa üle kirjutada.");
    }
}

// Päriliku klassi näide
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Vanemklassi konstruktor
        this.childValue = childValue;
    }

    // Vanemklassi meetodi üle kirjutamine
    @Override
    public void displayParentValue() {
        System.out.println("Üle kirjutatud vanemklassi väärtus: " + parentValue); // Pääs kaitstud väljadele
    }

    public void displayChildValue() {
        System.out.println("Lapse väärtus: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Vanemklassi meetodi kutsumine super abil
    }
}