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:
- O, alt sinifdə, valideyn sinifdəki metodla eyni ad, geri dönüş tipi və parametr siyahısı (imza) ilə təyin olunub.
- Valideyn sinif metod
privatedeyil. - Alt sinifdəki metod, valideyn sinifdəki metoddan daha sərt giriş modifikatoruna malik deyil.
- İ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");
}
}