Bu yazımda, Programlama Dillerinde Kalıtım Nedir? yazısında bahsettiğim kalıtım konsepti hakkında C# programlama dili ile basit ve anlaşılır bir örnek vermek istiyorum.
Bu örnekte, her arabada standart olan motor, marka ve çalışıp çalışmadığını gösteren bir boolean CalisiyorMu gibi standart özellikleri ve çalıştırma metodu olan bir Araba sınıfı oluşturalım ve bu araba sınıfı baz sınıf olsun. Sonra da Araba sınıfının özelliklerini ve metodlarını kalıtım ile miras alan bir Suv sınıfı ekleyelim ve Suv sınıfı için de kendi özelliklerini ve metodlarını yazalım.
Araba Sınıfı (baz sınıf)
class Araba
{
bool CalisiyorMu {get; set;}
public int Motor { get; set; }
public string Marka { get; set; }
public void Calistir () {
CalisiyorMu = true;
System.Console.WriteLine("rrnnnn");
}
public Araba (string Marka, int Motor)
{
this.Marka = Marka;
this.Motor = Motor;
}
}
SUV Sınıfı (Türetilmiş sınıf)
class Suv : Araba
{
public int Yukseklik { get; set; }
public void DagaTirman (int Yukseklik)
{
this.Yukseklik = Yukseklik;
}
public Suv (string Marka, int Motor) :base(Marka, Motor)
{
}
}
Artık bir Suv nesnesi oluşturup neler olup bittiğine bakabiliriz.
Suv cip = new Suv ("BMW", 3000);
cip.Calistir(); //rrnnnn
cip nesnesi, Suv sınıfına ait bir nesnedir ve Suv sınıfı da Araba baz sınıfından türetilmiştir. Suv kurucusu (constructor), :base ifadesi ile baz sınıfının kurucusunu kullanmaktadır ve Araba sınıfının metodları ile özelliklerini de miras almıştır. Sonuç olarak Suv sınıfı için de kullanılabilir bir Calistir() metodu vardır ve bu metod, Araba sınıfına ait metod olduğu için içerisindeki kodlar çalışmaktadır.
Önceki bazı diğer benzer yazılarım için;
bkz: C# ile String'in ilk karakterini bulmak
bkz: C# ile 3'e ve 5'e tam olarak bölünebilen sayıları bulmak
bkz: C# ile iç içe while döngüsü kullanımı ve örnekleri
bkz: C# ile rastgele yazı tura atma uygulaması
bkz: C# continue kullanımı ve örnekleri
bkz: C# Switch Case kullanımı ve örnekleri