C# Virtual ve Override Kullanımı

Posted by

Merhaba arkadaşlar, bu yazımda sizlere C# Virtual ve Override Kullanımı konusundan bahsedeceğim.

C# programlama dili, nesne yönelimli programlama konseptlerine sahip bir dildir. Bu konseptlerden biri de polimorfizmdir. Polimorfizm, bir nesnenin farklı şekillerde davranabilmesini sağlar ve C#’da virtual ve override anahtar kelimeleriyle gerçekleştirilir. Bu blog yazısında, C# programlama dilinde virtual ve override anahtar kelimelerinin nasıl kullanıldığını ve polimorfizm kavramını anlatacağım.

  1. virtual Anahtar Kelimesi:
    C# programında bir metodu virtual anahtar kelimesiyle işaretlediğimizde, bu metodu türetilen sınıflar tarafından ezilebilir hale getiririz. Yani, türetilen sınıflar bu metodu kendi ihtiyaçlarına göre yeniden tanımlayabilirler. virtual anahtar kelimesi, metodun varsayılan bir uygulaması olduğunu ve türetilen sınıfların bunu değiştirebileceğini belirtir. İşte bir örnek:
public class TemelSinif
{
    public virtual void SelamVer()
    {
        Console.WriteLine("Merhaba, Ben temel sınıfım!");
    }
}

public class TuretilmisSinif : TemelSinif
{
    public override void SelamVer()
    {
        Console.WriteLine("Merhaba, Ben türetilmiş sınıfım!");
    }
}

public static void Main()
{
    TemelSinif temel = new TemelSinif();
    TuretilmisSinif turetilmis = new TuretilmisSinif();

    temel.SelamVer(); // Çıktı: Merhaba, Ben temel sınıfım!
    turetilmis.SelamVer(); // Çıktı: Merhaba, Ben türetilmiş sınıfım!
}

Yukarıdaki örnekte, TemelSinif adlı bir sınıf tanımladık ve SelamVer adlı bir metot ekledik. Bu metodu virtual olarak işaretledik, böylece TuretilmisSinif adlı sınıf bu metodu ezerek kendi uygulamasını oluşturabildi. Main metodu içinde her iki sınıfın da SelamVer metodunu çağırarak çıktılarını gözlemleyebilirsiniz.

2.override Anahtar Kelimesi:
override anahtar kelimesi, bir temel sınıftaki virtual metodu türetilen sınıfta ezerek üzerine yazmamızı sağlar. Bu, polimorfizm kavramının temelidir. İşte bir örnek:

public class TemelSinif
{
    public virtual void BilgiVer()
    {
        Console.WriteLine("Ben temel sınıfım!");
    }
}

public class TuretilmisSinif : TemelSinif
{
    public override void BilgiVer()
    {
        Console.WriteLine("Ben türetilmiş sınıfım!");
    }
}

public static void Main()
{
    TemelSinif temel = new TemelSinif();
    TuretilmisSinif turetilmis = new TuretilmisSinif();

    temel.BilgiVer(); // Çıktı: Ben temel sınıfım!
    turetilmis.BilgiVer(); // Çıktı: Ben türetilmiş sınıfım!
}

Yukarıdaki örnekte, TemelSinif adlı bir sınıf oluşturduk ve BilgiVer adlı bir metot ekledik. Bu metodu virtual olarak işaretledik. Ardından TuretilmisSinif adlı bir sınıf oluşturduk ve BilgiVer metodu üzerine override anahtar kelimesiyle yazdık. Main metodu içinde her iki sınıfın da BilgiVer metodunu çağırarak çıktılarını gözlemleyebilirsiniz.

Bu blog yazısında, C# programlama dilinde virtual ve override anahtar kelimelerini kullanarak polimorfizmi nasıl sağlayabileceğimizi gördük. virtual anahtar kelimesiyle bir metodu türetilen sınıflar tarafından ezilebilir hale getirirken, override anahtar kelimesiyle türetilen sınıflarda temel sınıftaki metodu ezerek üzerine yazabiliriz. Polimorfizm sayesinde farklı nesnelerin aynı isimli metotları farklı şekillerde davranabilir ve kodun daha esnek ve yeniden kullanılabilir olmasını sağlayabiliriz.

Umarım faydalı olur.

Bir sonraki yazıda görüşmek üzere…

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir