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 орқали ота методини чақириш
    }
}