Sobes.tech
Junior

Ինչպե՞ս ժառանգական դասը օգտագործում է ծնողական դասի գործառույթը։

sobes.tech AI

Պատասխան AI-ից

Մերածություն՝ ժառանգություն. ժառանգական դասը ստանում է ծնողական դասի հանրային և պաշտպանված անդամները:

  • Ուղիղ մուտք: Ծնողական դասի հանրային և պաշտպանված դաշտերին և մեթոդներին ուղղակի մուտք գործելու համար օգտագործվում է նրանց անունը ժառանգական դասի ներսում:
  • super բանալի բառ: Օգտագործվում է ծնողական կոնստրուկտորին կանչելու կամ ծնողական վերագրած մեթոդներին/դաշտերին մուտք գործելու համար, երբ ժառանգական դասում նույնանուն անդամներ կան:
  • Վերագրում (overriding): Ծնողական դասի մեթոդները (final չլինող) կարող են վերագրել ժառանգական դասում՝ փոխելով նրանց վարքագիծը:
// Ծնողական դասի օրինակ
class Parent {
    protected int parentValue;

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

    public void displayParentValue() {
        System.out.println("Ծնողի արժեքը: " + parentValue);
    }

    public final void cannotBeOverridden() {
        System.out.println("Այս մեթոդը չի կարող վերագրել.");
    }
}

// ժառանգական դասի օրինակ
class Child extends Parent {
    private int childValue;

    public Child(int parentValue, int childValue) {
        super(parentValue); // Ծնողական կոնստրուկտորին կանչում
        this.childValue = childValue;
    }

    // Ծնողական մեթոդի վերագրում
    @Override
    public void displayParentValue() {
        System.out.println("Վերագրած ծնողի արժեքը: " + parentValue); // պաշտպանված դաշտին մուտք
    }

    public void displayChildValue() {
        System.out.println("Երեխայի արժեքը: " + childValue);
    }

    public void callParentMethod() {
        super.displayParentValue(); // super-ի միջոցով ծնողական մեթոդը կանչել
    }
}