Sobes.tech
Junior

Hansı zaman metod override olunur (overriding)?

sobes.tech Süni İntellekt

AI-dan cavab

Obyektiv proqramlaşdırmada metod aşağıdakı hallarda yenidən təyin edilmiş (overriding) hesab olunur:

  1. O, alt sinifdə, valideyn sinifdəki metodla eyni ad, geri dönüş tipi və parametr siyahısı (imza) ilə təyin olunub.
  2. Valideyn sinif metod private deyil.
  3. Alt sinifdəki metod, valideyn sinifdəki metoddan daha sərt giriş modifikatoruna malik deyil.
  4. İstisnalar halında, yenidən təyin olunan metod yoxlanılan istisnaları ([checked exceptions]) elan edə bilməz, onlar yenidən təyin olunan metodda elan edilənlərdən daha ümumi olmamalıdır.

Yenidən təyin olunan metoda, alt sinif obyektində çağırıldıqda, alt sinifin metod versiyası icra olunur. Bu, icra zamanı çox biçimlilik nümunəsidir.

Java nümunəsi:

// java

class Animal {
    public void makeSound() {
        System.out.println("Ümumi heyvan səsi");
    }
}

class Dog extends Animal {
    @Override // @Override annotasiyası, metodun yenidən təyin olunduğunu təsdiqləyir
    public void makeSound() {
        System.out.println("Hav hav");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miyav");
    }
}