Sobes.tech
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.
  • final veya static yö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!