Sobes.tech
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:

  1. Otasining sinfidagi metod final (yoki boshqa tillarda ekvivalent modifikator) bilan e'lon qilinmagan bo'lishi kerak, bu metodni qayta yozishni taqiqlaydi.
  2. Qayta yozilgan metodning kirish darajasi otasining sinfidagi metoddan ko'proq cheklovchi bo'lishi mumkin emas.
  3. Qayta yozilgan metod, otasining sinfidagi metod bilan bir xil turni yoki kovariant turni (asl turning subtipi) qaytarishi mumkin.
  4. Qayta yozilgan metod, otasining metodida e'lon qilinganlardan kengroq (yoki mos kelmaydigan) istisnolarni tashlamaydi.
  5. 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");
    }
}