Kalıtım (Inheritance) Nedir? Nasıl Kullanılır?
Merhaba, Medium ortamında ilk yazımla sizlerle birlikteyim. Umarım keyifli bir yazıyla sizlere Kalıtım konusunu anlatabilirim. İyi okumalar…
Kalıtım aslında OOP ‘nin en çok kullanılan ve en temel özelliklerinin başında gelmektedir.
Tanım olarak bakarsak; bir sınıftaki özellik ve metotların başka bir sınıfta tekrar edilmeden tanımlanmış olarak kullanılmasına olanak sağlayan yapıdır. Bir ebeveyn sınıfın, çocuklarına miras olarak bıraktıkları özellikleri Kalıtım yapısında düşünerek daha açıklayıcı bir yapı elde etmiş oluruz.
Bu gördüğümüz yapıda Ebeveyn sınıfında bulunan özellik ve metot kalıtım yoluyla Çocuk1 ve Çocuk2 sınıfları tarafından kullanılır. Ayrıca Çocuk1 sınıfı kendi içinde özel olarak boy, Çocuk2 sınıfı ise cinsiyet özelliklerini eklemişlerdir. Yani her sınıf ayrıca kendisine ek olarak özelliklerini veya metotlarını ekleyebilmektedir.
Bu yapının OOP ve genel kodlama yapısındaki önemi ise; genel kod tekrarlarından kurtulmak, sınıf yapılarını düzenli bir şekilde kullanmaktır. Ayrıca dikkat edilmesi gereken bir diğer husus ise bir sınıf sadece 1 tane sınıfı kalıtabilir. Yani her çocuk sınıfın (alt sınıfın) sadece bir tane ebeveyn sınıfı (üst sınıfı) olabilir.
Örnek — Canlılar Alemi
Örnek olarak kalıtım için çok doğru bir yapı vardır. -Evren- Canlı varlıklar, kendi içinde bölünmektedir. Ancak her canlının bir özelliği ortaktır. O da yaş özelliğidir. Bu yaş özelliği canlı olan tüm varlıklar için kullanılır. Kuş, ağaç, papatya, insan … Tabi bu özelliğin ardından her canlının kendine has özellikleri ve daha da alt sınıfları vardır. Örnek olarak Canlı sınıfı şu şekilde oluşturulabilir.
Bu sınıfı kalıtacak olan 3 adet sınıfımızı ele alalım. Bu sınıflar Insan, Hayvan ve Bitki olsun. Bu 3 sınıf Canli sınıfında bulunan Yas özelliğini otomatik olarak almaktadırlar ve her Insan, Hayvan ve Bitki sınıfından türetilecek olan nesneler bu Yas özelliğine erişebilecekler.
Her sınıf kendine has özelliklerini de ayrıca eklemiş ve kullanabilir hale gelmiştir. Tabi bu sınıflarda başka sınıfların ebeveyn sınıfı olabilir. Nasıl mı? İşte tam olarak böyle :)
Şimdi gelelim bu sınıfları programımız içinde kullanmaya…
Görüldüğü üzere bir sınıfta kalıtım yoluyla birçok özellik kod tekrarı yapılmadan kullanılabildi. Böylelikle kalıtımın faydası ve kullanım şeklini görmüş olduk.
Yazımı okuduğunuz için teşekkürler. Eksik veya hatalı gördüğünüz yerleri bana bildirerek düzeltmemi sağlayabilir ayrıca kendimi geliştirmemde yardımcı olabilirsiz.