Junior
Qachon metodni (overriding) qayta yozish yuzaga keladi?
sobes.tech AI
AIdan javob
Usullash metodining (overriding) yuzaga kelishi vorislik hierarxiyasida bo'lib, qaysi bo'lak (klass) o'zining o'ziga xos metodini taqdim etadi, bu metod avvalroq ota klassda belgilangan bo'lib, uning nomi, imzosi (parametrlar turi va soni bilan mos kelishi) va qaytish turi (yoki kovariant bo'lsa, qaytish turining subtipi) bilan bir xil bo'lishi kerak.
Asosiy xususiyatlar:
- Vorislik: Bu faqat vorislik kontekstida (ota va bolalar klasslari) mumkin.
- Imzo: Bolalar klassidagi metod, ota klassidagi metod bilan bir xil imzoga (nom, parametrlar soni va turlari) va bir xil qaytish turiga (yoki uning kovariant subtipiga) ega bo'lishi kerak.
- Mumkin bo'lishi: Qayta yoziladigan metod, bolalar klassida mavjud bo'lishi va unga kirish mumkin bo'lishi kerak (
public,protected). - Polimorfizm: Qayta yozish, ish vaqtidagi polimorfizm asosidir, bu bolalar klassining ob'ektlariga, ular ota klassga referens bilan murojaat qilinsa ham, metodni o'z usulida javob berishga imkon beradi.
Misol (Java):
// Ota klass
class Animal {
// Qayta yoziladigan metod
public void makeSound() {
System.out.println("Hayvon tovush chiqaradi");
}
}
// Bola klass
class Dog extends Animal {
// makeSound() metodining qayta yozilishi
@Override // @Override annotatsiyasi ixtiyoriy, lekin tavsiya etiladi
public void makeSound() {
System.out.println("It baqiradi");
}
}
Foydalanish misoli:
// Dog ob'ektini yaratamiz
Animal myDog = new Dog();
// Metodni chaqiramiz. Bu, Dog'dagi qayta yozilgan versiyasini chaqiradi
myDog.makeSound(); // Chiqish: It baqiradi
// Animal ob'ektini yaratamiz
Animal someAnimal = new Animal();
// Metodni chaqiramiz. Bu, Animal'dagi versiyasini chaqiradi
someAnimal.makeSound(); // Chiqish: Hayvon tovush chiqaradi