Junior
Dasturlashda metodni (overriding) qayta yozish qachon bo'ladi?
sobes.tech AI
AIdan javob
Usullash metodining o'zgarishi merosxo'rlikda yuzaga keladi, bu yerda voris sinf o'zining metodini taqdim etadi, bu metod allaqachon ota sinfda belgilangan. Metodning imzosi (nomi, qaytish turi va argumentlar soni/turlari) ota sinf metodiga mos kelishi kerak. Bu polimorfizmning ishlashiga imkon beradi: voris sinf obyekti, ota sinf obyekti sifatida ishlatilganda, o'zining maxsus metod realizatsiyasini chaqiradi.
Foydalanish misollari:
- Meros olingan xulq-atvor logikasini o'zgartirish.
- Umumiy interfeys uchun voris sinfga xos bo'lgan realizatsiyani taqdim etish.
Asosiy nuqtalar:
- -ga--bo'lish* munosabat talab qilinadi (merosxo'rlik).
- Metod imzosi mos kelishi kerak.
- Kirish modifikatori, ota sinf metodiga teng yoki kamroq qat'iy bo'lishi mumkin.
finalyokistaticmetodlarni qayta yozib bo'lmaydi (ko'p tillarda).
// Java misol
class Animal {
public void makeSound() {
System.out.println("Umumiy hayvon ovozi");
}
}
class Dog extends Animal {
@Override // Anotatsiya, qayta yozishni ko'rsatadi
public void makeSound() {
System.out.println("Gav!");
}
}
// Foydalanish
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Chiqish: Umumiy hayvon ovozi
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Chiqish: Gav! (qayta yozilgan metod chaqiriladi)
# Python misol
class Animal:
def make_sound(self):
print("Umumiy hayvon ovozi")
class Dog(Animal):
def make_sound(self): # Metodni qayta yozish
print("Gav!")
# Foydalanish
# animal = Animal()
# animal.make_sound() # Chiqish: Umumiy hayvon ovozi
#
# dog = Dog()
# dog.make_sound() # Chiqish: Gav!