Junior
Metod nə vaxt yenidən yazılmış sayılır?
sobes.tech Süni İntellekt
AI-dan cavab
Metod aşağıdakı hallarda yenidən təyin edilmiş sayılır:
- O, törəmə sinifdə elan olunub.
- O, valideyn sinifdəki metodla eyni adı daşıyır.
- O, eyni imzaya (parametrlərin sayı və tipləri) və parametrlərin ardıcıllığına malikdir.
- O, valideyn sinifdəki metodun geri dönüş növü ilə uyğun gələn geri dönüş növünə malikdir (ko-varianlıq, əgər tətbiq olunursa).
- O, valideyn sinifdəki metodla eyni və ya daha geniş giriş modifikatoruna malikdir (əksər obyekt yönümlü dillərdə).
- Valideyn metodu virtual, abstrakt və ya interfeys kimi elan olunub (açıq şəkildə yenidən təyin etmə imkanını tələb edən dillərdə, məsələn, C#-də
virtualaçar sözü ilə).
Java nümunəsi:
// Valideyn sinfi
class SuperClass {
// Yenidən təyin oluna bilən metod
public void display() {
System.out.println("Bu, SuperClass-ın display metodudur.");
}
}
// Törəmə sinif
class SubClass extends SuperClass {
// Yenidən təyin olunmuş display metodu
@Override // Kompilyasiya mərhələsində yenidən təyin etməni yoxlamaq üçün annotasiya
public void display() {
System.out.println("Bu, SubClass-ın display metodudur.");
}
}
Python nümunəsi:
# Valideyn sinfi
class SuperClass:
# Yenidən təyin oluna bilən metod
def display(self):
print("Bu, SuperClass-ın display metodudur.")
# Törəmə sinif
class SubClass(SuperClass):
# Yenidən təyin olunmuş display metodu
def display(self):
print("Bu, SubClass-ın display metodudur.")
Əsas məqam, metodun adını və imzasını qorumaq, lakin onun davranışını törəmə sinifdə dəyişdirməkdir.
Overloading (yükləmə) ilə vacib fərq:
Yükləmə, eyni sinifdə eyni adda, lakin fərqli imzaya malik bir neçə metodun elanıdır. Overriding (yenidən təyin etmə) isə, törəmə sinifdə, atasının metodu ilə eyni adda və imzaya malik metodun elanıdır.