C# (C Sharp) Ders 16 – Nesne Yönelimli Programlama (OOP) – Kalıtım (Inheritance)

Kalıtım (Inheritance), bir sınıfın (türetilmiş sınıf/derived class), başka bir sınıftan (temel sınıf/base class) özelliklerini ve metotlarını miras almasıdır.

Kod Tekrarını Önleme: Ortak özellikleri ve davranışları temel sınıfta tanımlayıp, türetilmiş sınıflarda tekrar yazmaktan kaçınarak kodun okunabilirliğini ve bakımını kolaylaştırır.

Hiyerarşik Yapılar Oluşturma: Gerçek dünyadaki nesneler arasındaki ilişkileri programda modelleyebiliriz (Örn: Hayvan -> Kedi, Köpek).

Yeniden Kullanılabilirlik: Temel sınıfta tanımlanan özellikler ve metotlar, türetilmiş sınıflarda doğrudan kullanılabilir.

Temel Sınıflar (Base Classes) ve Türetilmiş Sınıflar (Derived Classes)

  • Temel Sınıf (Base Class): Miras alınan sınıf. Ortak özellikleri ve davranışları tanımlar.
  • Türetilmiş Sınıf (Derived Class): Temel sınıftan miras alan sınıf. Temel sınıfın özelliklerini ve metotlarını devralır ve kendine özgü ek özellikler ve davranışlar ekleyebilir.
  • “:” Operatörü ile Kalıtım Gerçekleştirme: Türetilmiş sınıf, temel sınıfı “:” operatörüyle belirtir.
C#
public class Hayvan // Temel Sınıf
{
    public string Ad;
    public int Yas;

    public void SesCikar()
    {
        Console.WriteLine("Hayvan sesi çıkardı.");
    }
}

public class Kedi : Hayvan // Türetilmiş Sınıf (Hayvan'dan miras alıyor)
{
    // ...
}

“override” Anahtar Kelimesi: Metotları Geçersiz Kılma (Method Overriding)

  • Metot Geçersiz Kılma (Method Overriding): Türetilmiş sınıfta, temel sınıftaki bir metodu aynı isim ve parametrelerle yeniden tanımlayarak farklı bir davranış sergilemesini sağlamak.
  • “virtual” Anahtar Kelimesi: Temel sınıftaki metotun geçersiz kılındığını belirtmek için kullanılır.
  • “override” Anahtar Kelimesi: Türetilmiş sınıfta, temel sınıftaki sanal metodu geçersiz kılmak için kullanılır.
C#
public class Hayvan // Temel Sınıf
{
    public virtual void SesCikar()
    {
        Console.WriteLine("Hayvan sesi çıkardı.");
    }
}

public class Kedi : Hayvan // Türetilmiş Sınıf (Hayvan'dan miras alıyor)
{
    public override void SesCikar()
    {
        Console.WriteLine("Miyav!");
    }
}

“base” Anahtar Kelimesi: Temel Sınıfın Metotlarını Çağırma

  • “base” Anahtar Kelimesinin Amacı: Türetilmiş sınıfta, temel sınıfın metotlarını veya özelliklerini çağırmak için kullanılır.
  • Kullanım Alanları: Temel sınıfın davranışını koruyarak türetilmiş sınıfa özgü ek işlemler yapmak
C#
public class Hayvan // Temel Sınıf
{
    public virtual void SesCikar()
    {
        Console.WriteLine("Hayvan sesi çıkardı.");
    }
}

public class Kedi : Hayvan // Türetilmiş Sınıf (Hayvan'dan miras alıyor)
{
    public override void SesCikar()
    {
        base.SesCikar(); // Temel sınıfın metotunu çağır
        Console.WriteLine("Miyav!");
    }
}

Çok Seviyeli Kalıtım (Multi-Level Inheritance)

  • Çok Seviyeli Kalıtımın Tanımı: Bir türetilmiş sınıfın, başka bir türetilmiş sınıftan miras almasıdır. Hiyerarşik yapıyı daha da derinleştirebiliriz.
C#
public class Hayvan // Temel Sınıf
{
    // ...
}

public class Memeli : Hayvan // Türetilmiş Sınıf
{
    // ...
}

public class Kedi : Memeli // Çok Seviyeli Kalıtım (Memeli'den miras alıyor)
{
    // ...
}

Kaynak: https://learn.microsoft.com/tr-tr/dotnet/csharp/tour-of-csharp/tutorials/