Junior
Bir yöntem ne zaman yeniden tanımlanmış sayılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bir metod, aşağıdaki durumlarda yeniden tanımlanmış sayılır:
- Bir alt sınıfta tanımlanmıştır.
- Üst sınıftaki metodla aynı ada sahiptir.
- Aynı imzaya (parametre sayısı ve tipleri) ve parametre sırasına sahiptir.
- Dönen değeri, üst sınıf metodunun dönen değeriyle uyumlu (kovaryantlık, uygunsa).
- Üst sınıf metodundan aynı veya daha geniş erişim belirteci kullanır (çoğu nesne yönelimli dilde).
- Üst sınıf metodu sanal, soyut veya arayüz olarak tanımlanmış (sanal anahtar kelimesi
virtualgibi, açıkça yeniden tanımlama imkanı gerektiren dillerde).
Java örneği:
// Üst sınıf
class SuperClass {
// Yeniden tanımlanabilir metod
public void display() {
System.out.println("Bu, SuperClass display metodudur.");
}
}
// Alt sınıf
class SubClass extends SuperClass {
// Yeniden tanımlanmış display metodu
@Override // Derleme zamanında yeniden tanımlamayı kontrol etmek için anotasyon
public void display() {
System.out.println("Bu, SubClass display metodudur.");
}
}
Python örneği:
# Üst sınıf
class SuperClass:
# Yeniden tanımlanabilir metod
def display(self):
print("Bu, SuperClass display metodudur.")
# Alt sınıf
class SubClass(SuperClass):
# Yeniden tanımlanmış display metodu
def display(self):
print("Bu, SubClass display metodudur.")
Anahtar nokta, metodun adını ve imzasını korumak, ancak alt sınıfta davranışını değiştirmektir.
Overloading (aşırı yükleme) ile önemli fark:
Aşırı yükleme, aynı sınıfta farklı imzalara sahip birden fazla metodun tanımlanmasıdır. Yeniden tanımlama (overriding) ise, alt sınıfta, üst sınıftakiyle aynı isim ve imzaya sahip bir metodun tanımlanmasıdır.