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.
supermä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
}
}