Junior
Qachon metod override qilinadi (overriding)?
sobes.tech AI
AIdan javob
Bir metod, alt sinfda xuddi shaxsda (metod nomi, parametrlar soni va turlari bir xil tartibda) e'lon qilinsa, qayta yozilgan hisoblanadi. Bundan tashqari:
- Otasining sinfidagi metod
final(yoki boshqa tillarda ekvivalent modifikator) bilan e'lon qilinmagan bo'lishi kerak, bu metodni qayta yozishni taqiqlaydi. - Qayta yozilgan metodning kirish darajasi otasining sinfidagi metoddan ko'proq cheklovchi bo'lishi mumkin emas.
- Qayta yozilgan metod, otasining sinfidagi metod bilan bir xil turni yoki kovariant turni (asl turning subtipi) qaytarishi mumkin.
- Qayta yozilgan metod, otasining metodida e'lon qilinganlardan kengroq (yoki mos kelmaydigan) istisnolarni tashlamaydi.
- Statik metodlar qayta yozilmaydi, faqat yashirin (hidden) bo'lishi mumkin.
Qayta yozilgan metodga otasining sinfidagi havola orqali, ammo bolalar obyekti bilan chaqirilganda, bolalar sinfidagi versiya ishlaydi (polimorfizm).
// Java misol
class Parent {
public void display() { // Otaning sinfidagi metod
System.out.println("Parent display");
}
// final void cannotOverride() { ... } // Bu metod qayta yozilmaydi
}
class Child extends Parent {
@Override // @Override annotatsiyasi, kompilatorga metod haqiqatan ham qayta yozilayotganini tekshirishga yordam beradi
public void display() { // Qayta yozilgan metod - xuddi shaxsda
System.out.println("Child display");
}
}