Merhaba arkadaşlar..

Bu yazımızda kalıtımdan bahsedeceğiz…

Bir sınıfın sahip olduğu tüm özelliklerin başka bir sınıf içinde kullanılması şeklinde açıklanabilir. Açıklaması, örnekleri oldukça kolaydır.  İnternette bir araştırma yaptığımızda konunun daha iyi anlaşılabilmesi için verilen örnekler hep aynıdır ama nokta vuruşudur. Klasik olarak bizde verelim. Örneğin araba adında bir sınıfımız olsun tüm araba markaları araba sınıfımızdan miras almalıdır değil mi? Araba markalarının kendi aralarında farklılıkları olabilir fakat dört tekerleği olması ortak özelliktir. Aynı şekilde taşıt şeklinde bir sınıfımız olsaydı araba sınıfımızda taşıt sınıfından miras almalıydı. Tüm taşıtların tekerleği olması ortak bir özellik olacaktı. Başka örneklere bakalım; örneğin canlı, insan, hayvan, kadın ve erkek adlarında sınıflarımız olsun. Araba örneğinden yola çıkarak kafamızda bir şeyler canlanıyor ve görüyoruz ki canlı sınıfımız diğer sınıflar tarafından base olarak kabul edilerek kalıtım alınması gereken sınıftır. Örneğin canlı sınıfında nefesal() şeklinde bir metodumuz olsun takdir edersiniz ki tüm sınıflar bu özelliğe sahip olmalıdır. Eğer kalıtım alırsak sadece bir kere yazacağız ve kod yazımı bakımından büyükçe bir yükten kurtulacağız. Güç ve zaman tasarrufu yapacağız. Canlı sınıfı insan ve hayvan sınıflarına kalıtım verecek , kadın ve erkek sınıfları insan sınıfından kalıtım alacaktır. Geniş çaplı projelerimizde çok işimize yaracak bir yapı olduğunu anlayabiliyoruz.

 

kalıtım

Yukarıdaki kod bloğunda kalıtımın c# halini görüyoruz. Honda adlı class Araba adlı class ın tüm özelliklerini artık kullanabiliyor. Honda class ından bir nesne ürettiğimizde nesnemizin tekerlek ve cikisTarihi değişkenleri (kendi kod bloğunda yazmasa bile) kullanılabilir.

 

*** Yukarıdaki kod bloğunda gördüğünüz gibi private değişkene dışarıdan bu şekilde ulaşabiliriz.****

 

Ekran Alıntısı

Eminim aklınıza birden fazla sınıftan kalıtım alabilir miyiz? Sorusu geliyordur. Sorunun cevabı hayır olacaktır. Bir sınıf sadece bir sınıftan kalıtım alabilir. Daha sonra anlatacağım interface yapısı ile bu mümkün olacaktır.

 

Facebook'dan yorumla