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.
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.
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
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.
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/