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.
- 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…