Junior
Programlamada bir metodun (overriding) yeniden tanımlanması ne zaman olur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Yöntem geçersiz kılma, kalıtım sırasında gerçekleşir; burada alt sınıf, üst sınıf tarafından tanımlanmış bir yöntemin kendi uygulamasını sağlar. Yöntem imzası (isim, dönüş tipi ve argümanların sayısı/tipleri) üst sınıf yöntemiyle aynı olmalıdır. Bu, polimorfizmin çalışmasını sağlar: alt sınıf nesnesi, üst sınıf nesnesi olarak kullanıldığında, kendi özgü yöntem uygulamasını çağırır.
Kullanım örnekleri:
- Miras alınan davranışın mantığını değiştirme.
- Ortak arayüz için alt sınıfa özgü uygulama sağlama.
Ana noktalar:
- Bir -e--ol* ilişkisi gereklidir (kalıtım).
- Yöntem imzası aynı olmalıdır.
- Erişim belirteci, üst sınıf yöntemine göre aynı veya daha az katı olabilir.
finalveyastaticyöntemler geçersiz kılınamaz (çoğu dilde).
// Java örneği
class Animal {
public void makeSound() {
System.out.println("Genel hayvan sesi");
}
}
class Dog extends Animal {
@Override // Notasyon, geçersiz kılmayı gösterir
public void makeSound() {
System.out.println("Hav hav!");
}
}
// Kullanım
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Çıktı: Genel hayvan sesi
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Çıktı: Hav hav! (geçersiz kılınan yöntem çağrılır)
# Python örneği
class Animal:
def make_sound(self):
print("Genel hayvan sesi")
class Dog(Animal):
def make_sound(self): # Yöntem geçersiz kılma
print("Hav hav!")
# Kullanım
# animal = Animal()
# animal.make_sound() # Çıktı: Genel hayvan sesi
#
# dog = Dog()
# dog.make_sound() # Çıktı: Hav hav!