Junior
Metodun (overriding) yenidən təyin olunması nə vaxt baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Yöntem üst-ə yazma (overriding), irsiyyət nizamında baş verir, burada uşaq sinif, artıq valideyn sinifdə müəyyən edilmiş və eyni ad, imza (tip və parametr sayı ilə uyğun gəlir) və geri dönüş tipi (və ya kovariant halda geri dönüş tipinin obyekti) ilə təyin olunmuş metodun öz tətbiqini təqdim edir.
Əsas xüsusiyyətlər:
- İrsiyyət: Üst-ə yazma yalnız irsiyyət kontekstində mümkündür (valideyn və uşaq sinifləri).
- İmza: Uşaq sinifdəki metod, valideyn sinifdəki metodla eyni imzaya (ad, parametr sayı və tipləri) və eyni geri dönüş tipinə (və ya onun kovariant alt tipinə) malik olmalıdır.
- Əlçatanlıq: Üst-ə yazılan metod, uşaq sinif üçün əlçatan olmalıdır (
public,protected). - Polimorfizm: Üst-ə yazma, işləmə vaxtı polimorfizmin əsasını təşkil edir və uşaq sinifin obyektlərinin, valideyn sinfə istinad edilərək belə, metod çağırışına öz tərzində cavab verməsinə imkan verir.
Nümunə (Java):
// Valideyn sinif
class Animal {
// Üst-ə yazılacaq metod
public void makeSound() {
System.out.println("Heyvan səs çıxarır");
}
}
// Uşaq sinif
class Dog extends Animal {
// makeSound() metodunun üst-ə yazılması
@Override // @Override annotasiyası seçimlidir, amma tövsiyə olunur
public void makeSound() {
System.out.println("İt havlayır");
}
}
İstifadə nümunəsi:
// Dog obyektini yaradın
Animal myDog = new Dog();
// Metodu çağırın. Dog-dakı üst-ə yazılmış versiya çağrılacaq
myDog.makeSound(); // Çıxış: İt havlayır
// Animal obyektini yaradın
Animal someAnimal = new Animal();
// Metodu çağırın. Animal-dakı versiya çağrılacaq
someAnimal.makeSound(); // Çıxış: Heyvan səs çıxarır