Sobes.tech
Junior — Middle

Фаъолияти оператори super дар контексти мерос ва даъвати методҳо ё конструкторҳои синфи асосӣ чист?

sobes.tech AI

Ҷавоб аз AI

Дар оператори super дар Java барои дастрасӣ ба методҳо ё конструкторҳои синфи асосӣ (падар) аз синфи зер истифода мешавад.

Мақсадҳои асосии super:

  • Звон кардани конструктори синфи асосӣ аз конструктори синфи зер, то қисмати объект, ки дар падар муайян шудааст, оғоз дода шавад.
  • Звон кардани методи барҳамдодаи синфи асосӣ, агар дар синфи зер бояд рафторро иловакунӣ ё тағир додан, дар ҳоле ки қисмати логикаи падар нигоҳ дошта шавад.

Масалан барои истифодаи конструктор:

class Animal {
    String name;
    Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    Dog(String name) {
        super(name); // занг ба конструктори Animal
    }
}

Масалан барои занг ба методи синфи асосӣ:

class Animal {
    void sound() {
        System.out.println("Баъзе садо");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // занг ба методи синфи асосӣ
        System.out.println("Гав-гав");
    }
}

Инчунин, super кӯмак мекунад дар идоракунии мерос ва истифодаи дубораи коди синфи асосӣ.