Inheritance (Kalıtım) Nedir?
Inheritance (kalıtım), nesne yönelimli programlamanın üç temel unsurundan biridir. Kalıtım hiyerarşik sınıflandırma olanağı sağlar. Kalıtım kullanarak birbiri ile ilişkili bir grup nesnenin ortak özelliklerini tanımlayan temel bir sınıf oluşturabilriz. Bu temel sınıf daha sonra belirli sınıflara kalıtım yoluyla aktarılır. C# dilinde kalıtım yoluyla aktarılan sınıfa temel sınıf adı verilir. Kalıtım işlemi gerçekleştirilen sınıf türetilmiş sınıf olarak adlandırılır. Bu sebeple türetilmiş sınıfa temel sınıfın özelleştirilmiş hali diyebiliriz. Türetilmiş sınıf temel sınıfta tanımlanmış tüm değişken, method, özellik gibi öğeleri kalıtım yoluyla elde eder. Kendine özgü öğeleri ayrıca kendine ekleyebilir.
Yazılımda BaseClass mantığı kalıtım vermektir.Base sınıfların kesinlikle örneklemi (interitance) çıkarılmaz.bu bir hataya yol açmaz ama bu bir prensiptir.Base sınıfların amacı örneklem alınması değil kalıtım vermesidir.
public string username --> username gibi bir özelliği biz base sınıfa yazamayız. bunun nedeni ata sınıfların diğer sınıflarda barındıracak olan özellikleri içerisinde tutma prensibidir username gibi bir özellik sadece"user.cs" class ı ilgilendirir.Product.cs yada category.cs gibi sınıflarda bu özelliğe ihtiyacım olmadığından dolayı username özelliğinin yeri baseclass olmamalıdır.
Proje büyüdükçe birkaç tane ata sınıfı (class) kullanalılabilir.mimarinmizde buna göre hareket etmemiz ve özellikleri ona göre yerleşmemiz gerekir.
Türetilmiş sınıflar sadece bir adet temel sınıftan kalıtım alabilir. C# türetilmiş sınıf içine birden fazla temel sınıfı kalıtım yoluyla aktarmayı desteklemez. Ancak bir türetilmiş sınıfı başka bir türetilmiş sınıfın temel sınıfı olmasını sağlayan kalıtım hiyararşisini destekler. Ayrıca hiçbir sınıf dolaylı yada dolaysız olarak kendi kendisinin temel sınıfı olamaz.
Kalıtımın başlıca avantajı, bir grup nesnenin ortak özelliklerini tanımlayan temel sınıf oluşturduktan sonra bu sınıf, özelleştirilmiş türetilmiş sınıfılardan istenilen sayıda oluşturmak için kullanılabilir. Örneğin Sekil sınıfımızdan türeyen Dikdortgen sınıfı gibi bir çok alt sınıflar oluşturabiliz.
Temel ve türetilmiş sınıflara referansta bulunurken bazen üst sınıf ve alt sınıf terimleri kullanılır. Bu terimler Java dilinden gelmektedir. Java'da üst sınıf terimi C# dilinde temel sınıf, alt sınıf ise türetilmiş sınıf olarak kullanılır. C++'da temel sınıfı/türetilmiş sınıf kelimelerini kullanır.
-----------------------------------------------------ÖRNEK---------------------------------------------------------
-----------------------------------------------------ÖRNEK---------------------------------------------------------
Yukarıdaki örnekte; A temel sınıf, B ise türetilmiş sınıftır. Türetme işlemi “class B : A” kodu ile 11. satırda yapılmıştır. B sınıfı A sınıfından türetildiği için A sınıfı içerisindeki değişken ve metodu kalıtım yolu ile almaktadır.
Türetme işleminden dolayı B sınıfı, A sınıfı içerisindeki “degisken_1” ve “Metot_1()” elemanlarını kendi içerisinde tanımlanmış gibi kullanabilmektedir.
NOT:Türetilmiş sınıf, temel sınıf içerisindeki değişkenleri ve metotları kendi içerisinde tanımlanmış gibi kullanabilir. Ancak temel sınıf, türetilmiş sınıftaki değişkenleri ve metotları kullanamaz.
-----------------------------------------------------ÖRNEK---------------------------------------------------------
BaseCar(Ata Sınıf kalıtım alınıp yeteneklerini göndereceği sınıf);
Türetilmiş Sınıf1 BaseCar dan yetenek alan;
Türetilmiş Sınıf2 BaseCar dan yetenek alan;
Last updated
Was this helpful?