Kemal Burak Yılmaz

C# Virtual Method Nedir?

C# Virtaul Metod’lar, türetildiği sınıfta yeniden tanımlanabilen metodlardır. Base sınıftaki bir metodu neden virtual olarak tanımlarız? Bir çok türetilmiş sınıfta base sınıftaki haliyle kullanılacak ama bazı sınıflarda farklı şekilde de kullanılabilir dediğimizde; yapacağımız hareket metodu virtual olarak tanımlamaktır.

Yukarıda ne demek istedik bir örnekle pekiştirelim:


    public class Vehicle
    {
        public virtual void GetSpeedAverage()
        {
            Console.WriteLine("Ortalama Hız - Base Class");
        }
    }

Yukarıda base sınıf olarak kullanacağımız yerde diyoruz ki; GetSpeedAverage metodu ekrana “Ortalama Hız – Base Class” yazısını yazar. Aracın ortalama hızını bilmiyorsanız boş geçebilirsiniz. He yok aracın ortalama hızını biliyorsanız override ederek ekrana yazdırabilirsiniz.


    public class Mercedes : Vehicle
    {
        public override void GetSpeedAverage()
        {
            Console.WriteLine("150");
        }
    }
    public class Bmw : Vehicle
    {

    }

Yukarıdaki şekilde de alt sınıfları tanımladıktan sonra Main metodu içerisinde aşağıdaki şekilde işlemlemleri yapıyoruz.

        static void Main(string[] args)
        {
            Vehicle a = new Vehicle();
            a.GetSpeedAverage();

            Vehicle mercedes = new Mercedes();
            mercedes.GetSpeedAverage();
            
            Vehicle bmw = new Vehicle();
            bmw.GetSpeedAverage();
        }

Çalıştırdığımızda programın çıktısı, sizin de tahmin edeceğiniz üzere:

Exit mobile version