Sobes.tech
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.
  • final yoki static metodlarni 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!