Junior
Proqramlaşdırmada metodin (overriding) yenidən yazılması nə vaxt baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Yöntemlərin üst-üstə düşməsi mirasa zamanı baş verir, burada alt sinif artıq üst sinif tərəfindən müəyyən edilmiş metodun öz tətbiqini təqdim edir. Metodun imzası (ad, geri dönüş tipi və arqumentlərin sayı/tipləri) üst sinifdəki metodla uyğun olmalıdır. Bu, polimorfizmin işləməsinə imkan verir: alt sinif obyekti, üst sinif obyekti kimi istifadə olunduqda, özünə məxsus metod tətbiqini çağırır.
İstifadə nümunələri:
- Miras alınmış davranışın məntiqini dəyişdirmək.
- Ümumi interfeys üçün alt sinifə xas tətbiq təmin etmək.
Əsas nöqtələr:
- -ə--ol* münasibəti tələb olunur (mirasa).
- Metod imzası uyğun olmalıdır.
- Giriş modifikatoru, üst sinif metoduna bərabər və ya daha az sərt ola bilər.
finalvə yastaticmetodlar dəyişdirilə bilməz (əksər dillərdə).
// Java nümunəsi
class Animal {
public void makeSound() {
System.out.println("Ümumi heyvan səsi");
}
}
class Dog extends Animal {
@Override // Anotasiya, dəyişdirilməni göstərir
public void makeSound() {
System.out.println("Hav!");
}
}
// İstifadə
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Nəticə: Ümumi heyvan səsi
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Nəticə: Hav! (dəyişdirilmiş metod çağırılır)
# Python nümunəsi
class Animal:
def make_sound(self):
print("Ümumi heyvan səsi")
class Dog(Animal):
def make_sound(self): # Metodun dəyişdirilməsi
print("Hav!")
# İstifadə
# animal = Animal()
# animal.make_sound() # Nəticə: Ümumi heyvan səsi
#
# dog = Dog()
# dog.make_sound() # Nəticə: Hav!