Sobes.tech
Junior

Kaip paveldima klasė naudoja tėvų klasės funkcionalumą?

sobes.tech AI

Atsakymas iš AI

Paveldėjimas: paveldėjimo klasė gauna tėvų klasės viešuosius ir apsaugotus narius.

  • Tiesioginė prieiga: Tiesiogiai prie tėvų klasės viešųjų ir apsaugotų laukų ir metodų galima prieiti jų vardu paveldėjimo klasėje.
  • super raktažodis: Naudojamas tėvų konstruktoriaus iškvietimui arba prieigai prie perrašytų tėvų metodų/laukų, kai paveldėjimo klasėje yra tokių pačių vardų narių.
  • Perrašymas (overriding): Tėvų metodai (ne final) gali būti perrašyti paveldėjimo klasėje, keičiant jų elgseną.
// Tėvų klasės pavyzdys
class Parent {
    protected int parentValue;

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

    public void displayParentValue() {
        System.out.println("Tėvo reikšmė: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Šis metodas negali būti perrašytas.");
    }
}

// Paveldėjimo klasės pavyzdys
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Tėvų konstruktoriaus iškvietimas
        this.childValue = childValue;
    }

    // Tėvų metodo perrašymas
    @Override
    public void displayParentValue() {
        System.out.println("Perrašyta tėvo reikšmė: " + parentValue); // Prieiga prie apsaugoto lauko
    }

    public void displayChildValue() {
        System.out.println("Vaiko reikšmė: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // Tėvų metodo iškvietimas per super
    }
}