Miras Alma / Kalıtım (Inheritance)

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Inheritance (miras alma, kalıtım), bir nesnenin özelliklerinin farklı nesneler tarafından da kullanılabilmesine olanak sağlayan OOP özelliğidir. Yazılan bir sınıf bir başka sınıf tarafından miras alınabilir. Bu işlem yapıldığı zaman temel alınan sınıfın tüm özellikleri yeni sınıfa aktarılır.

İnsan – memeli ilişkisinde, insanın memeli sınıfını miras aldığı söylenebilir. Bu sayede insan sınıfını yazarken memelilerin özelliklerini tekrar yazmamıza gerek kalmaz. Elinizde bir taşıt sınıfı varsa; otomobil, kamyon, motosiklet gibi alt sınıfları üretmek çok daha az çaba gerektirir.

C# dilinde sadece tek bir sınıftan miras alabilirsiniz.

Örnek:

 

public class Canli
{

    public int ayak;      // Canlının kaç ayağı olduğunu tutan field
    public int el;        // Canlının kaç eli olduğunu tutan field
    public string tur;    // Ne tür bir canlı olduğunu belirleyeceğimiz field.
}

 

Şimdi iki adet daha sınıf oluşturarak Canli sınıfından türetelim:

 

class Insan : Canli
{
    public void Konus()
    {
        Console.WriteLine(“Selam benim {0} adet elim ve {1} adet ayağım vardır.”,el,ayak);
        Console.ReadLine();

    }
}

 

Yukarıda farklı kullanılan bir yapı gözükmektedir. Console.WriteLine metodunun daha öncelerde farklı kullanımını görmüştük. Bu kullanımda ise indeks mantığı ile değişkenler atanmıştır. Yani “{0}” Console.WriteLine metoduna girilecek metnin ardından gelen parametrelerin ilkini yani index’i sıfır olanı ifade etmektedir. Bu da metodun kullanımında el isimli değişkene denk gelmektedir. Diğeri olan “{1}” ise bir sonraki indeksteki ayak isimli değişkene denk gelmektedir.

 

class Kopek : Canli
​{
    public void Havla()
    {
        Console.WriteLine(“Hav”);
        Console.ReadLine();
    }
}

 

Bu sınıfların kullanım örneği aşağıda verilmiştir:

 

class CanliDemo
{
    public static void Main()
    {
        Insan ins=new Insan();
        Kopek kop=new Kopek();
 
        ins.el=2;
        ins.ayak=2;
        kop.ayak=4;
        ins.Konus();
        kop.Havla();
 
    }
}

 

Bu uygulamayı çalıştırdığınızda ekranda aşağıdaki çıktı görülür:

     Selam benim 2 adet elim ve 2 adet ayağım vardır.

     Hav

Görüldüğü gibi el ve ayak gibi özellikler canlıyı kalıtım alan sınıflarda bir daha yazılmamıştır. Insan ve Kopek sınıfları CanliDemo sınıfından türediği için bu özellikleri doğrudan edinmiştir.