override ve new

Bu yazıda override ve new sözcüklerinin ne işe yaradığını öğreneceğiz. Hepimizin bildiği gibi sınıflar kalıtım ile birbirinden türetilebilir. Türetilen sınıf, türediği sınıfın tüm özelliklerini kalıtım yolu ile devralır. Devralınan metotları farklı bir biçimde kullanmak istiyorsak bunu override ile yapabiliriz. Devralınan metotla aynı isimde fakat farklı bir metot tanımlamak istersek bunu new ile yapabiliriz. Aşağıdaki örneği çalıştırdığımızda program ekrana alt alta iki kere B yazdırmaktadır.

using System;

namespace ConsoleApplication1
{
    public class A
    {
        public virtual void Display()
        {
            Console.WriteLine("A");
        }
    }

    public class B : A
    {
        public override void Display()
        {
            Console.WriteLine("B");
        }
    }

    public class C : B
    {
        public new void Display()
        {
            Console.WriteLine("C");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            A a = new B();
            a.Display();

            a = new C();
            a.Display();

            Console.ReadKey();
        }
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *