Sobes.tech
Junior — Middle

C# dilinde sanal yöntemlerin kavramını ve polimorfizmin uygulanmasındaki rollerini açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

C# dilinde sanal metodlar, virtual anahtar kelimesiyle bildirilen ve türetilmiş sınıflarda override kullanılarak geçersiz kılınabilen metodlardır. Bu, çok biçimlilik (polymorphism) uygulamasının temelidir — temel sınıfa referanslar aracılığıyla türetilmiş sınıfların metodlarının çağrılabilmesi.

Bir metod sanal olarak bildirildiğinde, metod çağrısı çalışma zamanında (dinamik bağlama) belirlenir, derleme zamanında değil. Bu, bir nesnenin gerçek türüne bağlı olarak farklı davranmasını sağlar.

Örnek:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Hayvan ses çıkarıyor");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Hav hav");
    }
}

Animal a = new Dog();
a.Speak(); // "Hav hav" yazdırır

Burada, a değişkeninin tipi Animal olmasına rağmen, Dog sınıfındaki Speak() metodunun geçersiz kılınmış hali çağrılır, çünkü metod sanaldır.