Nesne yönelimli programlamada (Object Oriented Programming - OOP) en önemli konulardan birisi kalıtımdır (inheritance). Kalıtım, tanım olarak sınıfların başka sınıflardan türeyebilmesi ve davranış ike özelliklerinin kalıtsal olarak üstlerinde yer alan sınıflardan alınabilmesidir. Dolayısıyla bir sınıftan türetilen başka bir sınıf, üstünde yer alan sınıflardan bilgileri ve metodları miras olarak alabilmektedir. Bu şekilde birbirinin uzantısı olarak sınıflar tasarlanmış olur ve davranışsal olarak benzerlik gösterecek sınıflar arasında bir programlama bütünlüğü daha az ve güvenli kod ile sağlanabilmiş olur.
Örnek: Her sınıf Object sınıfından türetildiği için Object sınıfının metod ve özelliklerine sahiptir.
Kalıtım sayesinde bir sınıf altında başka sınıflar üretmek mümkün olur ve benzer davranışlar, çok sayıda sınıf içerisinde kopyala-yapıştır ile tekrarlamaya gerek kalmaz. Kodların yeniden kullanılabilirliği ve anlam bütünlüğü açısından bu büyük bir avantaj sağlamaktadır. Böylece kendi tanımladığımız sınıflar içerisinde alt ya da üst sınıflar tanımlamak mümkün olabildiği gibi başkalarının hazırlamış oldukları kütüphaneler için de uzantısal alt sınıflar hazırlayabilmek mümkün olmaktadır.
Kalıtım ile ilgili en sık verilen örneklerden birisi arabalardır, ancak çok anlaşılır bir örnek olduğu için ben de arabalar örneği üzerinden kalıtım konusuna yazılı bir örnek vermek istiyorum. Bir sonraki yazımda da kod olarak bu kalıtım örneğini yazılım ortamına geçirebiliriz.
Edit: C# ile Kalıtım Örneği (OOP)
Baz Sınıf (Base Class): Araba
Özellikler: Motor gücü, kapı sayısı
Metodlar: Korna çalma, çalıştırma
Türetilmiş sınıf: SUV
Özellikler: Yükseklik
Metodlar: Arazi sürüş moduna geçme
Türetilmiş sınıf: Spor araba
Özellikler: Turbo
Metodlar: Üstünün açılması
Bu örnekte türetilmiş sınıflar (spor araba ve suv), baz sınıf olan araba sınıfının özelliklerini ve metodlarını miras almaktadırlar. Baz sınıf, tüm arabalarda yer alan özellikleri ve metodları bünyesinde barındırdığı için bu özellik ve metodlar tüm arabalarda da olacaktır. SUV ya da spor araba gibi alt sınıflar ise araba sınıfının metod ve özelliklerine ek olarak kendi sınıflarına özgü özellik ve metodlara sahiptirler. Türetilmiş sınıflardan da daha fazla sayıda sınıf türetilebilir. Örneğin SUV'ler de kendi altlarında Crossover vb. gibi alt sınıflarda çoğaltılabilirler.
Önceki bazı diğer benzer yazılarım için;
bkz: C# Sınıf ve Nesne Nedir?
bkz: C# Sınıf Nasıl Oluşturulur?
bkz: C# Nesne Nasıl Oluşturulur?
bkz: C# ile String'in ortanca karakterini bulmak
bkz: C# ile string'in sonuna ekleme yapmak (5 farklı çözüm)
bkz: C# Kurucu (Constructor) Nedir?