Türetme İşlemleri (Inheritance)

Bizim tarafımızdan yada başkaları tarafından yazılmış olan bir sınıfa bir takım elemanlar eklemek isteyebiliriz. Türetme bir sınıfa yeni elemanlar ekleyerek onu genişletmek anlamına gelir. Eğer sınıfın kaynak kodu elimizde varsa orijinalini bozmadan onun bir kopyasını çıkararak eklemeleri kopya üzerinde yapabiliriz. Bu durumda gereksiz bir biçimde eleman yinelemesi olur. Üstelik bu yöntemin kullanılabilmesi için sınıfın kaynak kodlarının elde bulunuyor olması gerekir.

Türetme işleminde işlevi genişletilmek istenen sınıfa taban sınıf (base class), eklemeler yapılmış sınıfa türetilmiş sınıf (derived class) denir. Türetme işleminde yalnızca eklenecek elemanlar türemiş sınıf da bulundurulur. Türemiş sınıf taban sınıf gibi de davranabilir fakat fazlalıkları vardır. Türetme işlemi UML sınıf diyagramlarında türemiş sınıftan taban sınıfa çekilen bir okla gösterilir.

Türetme işleminin genel biçimi şöyledir:

Class :
{
//…
}

Türetilmiş bir sınıftan yeniden bir türetme yapılarak sınıf daha da genişletilebilir.

Örneğin:

Burada C sınıfı hem B gibi, hem A gibi davranabilmektedir ve fazlalıkları vardır.

Bir sınıf birden fazla sınıfın taban sınıfı olabilir. Bu durum gayet normaldir. Yani örneğin biz bir “A” sınıfından, “B” sınıfını türetmiş olabiliriz. Yine aynı “A” sınıfından, “C” sınıfını türetebiliriz.

Bir sınıfın birden fazla taban sınıfı olması durumu ilginç bir durumdur. Buna nesneye yönelimli programlama dilinde çoklu türetme (multiple inheritance) denir. Çoklu türetme C#’ da ve Java’ da yoktur. C++’ da vardır. Yani C#’ da bir sınıfın yalnızca tek bir taban sınıfı olabilir.

Kaynak:Kaan Aslan Hocanın Dersinde Tuttuğum Ders Notlarıdır.

Leave a Reply

Site Footer