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 кӯмак мекунад дар идоракунии мерос ва истифодаи дубораи коди синфи асосӣ.