Virtual Metodlar

Abstract claslarda tamamlanmış ve tamamlanmamış operasyonlar vardı. Tamamlanmış operasyonlarda referasn alan class ta ufak değişiklikler gerekli olabilir bu yüzden virtual anahtar kelimesi kullanılır. Abstarrc taradfında yaptığımız örneği virtuala çevirirsek override ederek referans alan class ta ezilebileceğini göreceğiz.


 class Program
    {
        static void Main(string[] args)
        {
            AMevzuat amevzuat = new AMevzuat();
            amevzuat.Degerlendir();
            amevzuat.Yazdir();        
           
            Console.ReadLine();
        }
    }

    public abstract class MevzuatBase
    {
        public abstract void Degerlendir();  // Bu operasyonu kim kullanıyorsa beni alsın ve metod içeriğinin işleyişini kendine göre oluştursun ben sadece bir yapıyım 

        public virtual void Yazdir()
        {
            Console.WriteLine("Ortak yaıdır istersen alt classlarda ezebilirsin ");  // bunu referans alanlar kullanabilir.
        }
    }
    
    class AMevzuat : MevzuatBase
    {
        public override void Degerlendir()
        {
            Console.WriteLine("A Mevzuatı Değerlendirildi");
        }
        public override void Yazdir()
        {
            Console.WriteLine("Bunu Ezdik :)  ");  
        }
    }

    class BMevzuat : MevzuatBase
    {
        public override void Degerlendir()
        {
            Console.WriteLine("B Mevzuatı Değerlendirildi");
        }

    }

Hiç yorum yok:

Yorum Gönder