İçeriğe geç

Base Anahtar Kelimesi ve Yapıcı Metotlar

Dha önceki yazılarımda base anahtar kelimesinden bahsetmiştim, kısaca hatırlamak istersek base anahtar kelimesi ile derived class’tan base class’a ulaşım sağlıyorduk. Şimdi aşağıdaki örnekle beraber base anahtar kelimesi ile derived class’tan base class’ın yapıcı metoduna ulaşmayı göreceğiz. İyi okumalar.

using System;

namespace ConsoleApp4
{
    class Insan
    {
        public string Isim { get; set; } = "Belirtilmedi.";
        public string Soyisim { get; set; } = "Belirtilmedi";

        public int ID { get; set; }
        public Insan(int ID, string Isim, string Soyisim)
        {
            this.Isim = Isim;
            this.Soyisim = Soyisim;
            this.ID = ID;
        }

        public virtual void GetInfo()
        {
            Console.WriteLine("ID:{0},\r\nİsim:{1}\r\nSoyisim:{2}", this.ID, this.Isim, this.Soyisim);
        }
    }

    class Muhendis : Insan
    {
        public string Unvan { get; set; }

        public Muhendis(int ID, string Isim, string Soyisim, string Unvan): base(ID, Isim, Soyisim)
        {
            this.Unvan = Unvan;
        }
        public override void GetInfo()
        {
            base.GetInfo();
            Console.WriteLine("Ünvan:{0}",this.Unvan);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Muhendis m1 = new Muhendis(1, "Beren Kuday", "GÖRÜN", "Yazılım Mühendisi");
            m1.GetInfo();
        }
    }
}

Yukarıdaki kod derleme zamanı hatası verecektir. Yorum satırını kaldırdığımızda program düzgün bir şekilde derlenecektir ancak ilk olarak buradaki sıkıntının neyden kaynaklandığına bakalım. Doğal olarak derived class çalıştığında base class ayağa kalkacaktır ve yapıcı metodunda beklediği bazı parametreler var bu parametreler sayesinde base class içerisindeki alanlara gerekli değerler atanacaktır. Daha sonrasında GetInfo metodu çağrılarak atanan bu ifadeler kullanıcıya gösterilebilir. Muhendis class’ının içerisinde ID, Isim, Soyisim gibi bir alan bulunmamaktadır. Bunlar zaten İnsan’a ait ortak özellikler bundan dolayı Muhendis class’ı örneklendiğinde bizim bunları base class’a bildirmemiz gerekmektedir. İşte yorum satırını kaldırır ve aşağıdaki kodu işletirseniz hatalarınız giderilmiş olacaktır.

public Muhendis(int ID, string Isim, string Soyisim, string Unvan): base(ID, Isim, Soyisim)

Burada base anahtar kelimesi ile 3 parametre kabul eden yapıcı metot tetiklenmektedir. Daha sonrasında GetInfo metodunu çağıralım…

ID:1,
İsim:Beren Kuday
Soyisim:GÖRÜN
Ünvan:Yazılım Mühendisi
Press any key to continue . . .

Umarım konu anlaşılmıştır, diğer yazılarda görüşmek üzere…

Kategori:C Sharp

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir