Sobes.tech
Junior

Bir yöntem ne zaman geçersiz kılınmış (overriding) sayılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Nesne yönelimli programlamada, bir metod şu durumlarda yeniden tanımlanmış (overriding) kabul edilir:

  1. Alt sınıfta, ana sınıftaki metodla aynı isim, dönüş tipi ve parametre listesine (imza) sahip olarak tanımlanmıştır.
  2. Ana sınıf metodunun private olmaması gerekir.
  3. Alt sınıftaki metod, ana sınıftaki metoddan daha katı bir erişim belirteci kullanmaz.
  4. İstisnalar durumunda, yeniden tanımlanan metod, ana metodda belirtilen istisnalar dışında, daha genel kontrol edilen istisnaları ([checked exceptions]) bildiremez.

Yeniden tanımlanan metoda, alt sınıf nesnesi üzerinden çağrıldığında, alt sınıfın metodunun versiyonu çalıştırılır. Bu, çalışma zamanında çok biçimlilik (polymorphism) örneğidir.

Java'da örnek:

// java

class Animal {
    public void makeSound() {
        System.out.println("Genel hayvan sesi");
    }
}

class Dog extends Animal {
    @Override // @Override açıklaması, metodun yeniden tanımlandığını doğrular
    public void makeSound() {
        System.out.println("Hav hav");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miyav");
    }
}