Miras ve Kompozisyon Arasındaki Fark

Anonim

Kalıtım vs Kompozisyon

Kalıtım ve Kompozisyon, OOP (Nesneye Dayalı Programlama) 'da bulunan iki önemli kavramdır. Basitçe, Bileşim ve Miras, bir sınıfa ek özellikler veya davranış sağlama konusunu ele alır. Kalıtım, bir sınıfın özelliklerini ve davranışını genişleterek bir üst sınıftan miras alabilme yeteneğidir. Öte yandan, Kompozisyon, bir sınıfın, üye veriler olarak farklı sınıfların nesnelerini içerme yeteneğidir.

Miras Nedir?

Yukarıda belirtildiği gibi, Kalıtım, bir sınıfın özelliklerini ve davranışını genişleterek bir üst sınıftan miras alabilme yeteneğidir. Kalıtım aslında yeni bir sınıf tarafından mevcut bir sınıfın özelliklerini ve davranışını genişletmeye izin vererek kod tekrar kullanımını sağlar. A sınıfı B'yi genişletiyorsa, B sınıfına ana sınıf (veya süper sınıf) denir ve A sınıfına alt sınıf (veya türetilmiş sınıf / alt sınıf) adı verilir. Bu örnek senaryoda, A sınıfı, süper sınıfın (B) kamuya açık ve korumalı özniteliklerini ve yöntemlerini devralacaktır. Alt sınıf, üst sınıfdan devralınan davranışı isteğe bağlı olarak geçersiz kılabilir (yöntemlere yeni veya genişletilmiş işlevler sağlar).

Kalıtım, OOP'da "is-a" ilişkisini temsil eder. Bu aslında A'nın da B olduğu anlamına gelir. Başka bir deyişle B, belirli bir gerçek dünya varlığının genel bir tanımlamasına sahip sınıf olabilir, ancak A belirli bir uzmanlığı belirtir. Gerçek bir dünya programlama probleminde, Person sınıfı Çalışan sınıfını oluşturmak için genişletilebilir. Buna uzmanlaşma denir. Bununla birlikte, önce Çalışan sınıfını oluşturabilir ve onu bir Kişi sınıfına da genelleştirebilirsiniz (diğer bir deyişle genelleme). Bu örnekte, Çalışan, Kişinin tüm özelliklerine ve davranışına (yani, Çalışan aynı zamanda bir Kişi'dir) sahip olacak ve bazı ilave işlevler de (yani, Kişi Çalışan Değildir) içerecektir.

Kompozisyon Nedir?

Kompozisyon, sınıfın üyelerin verileri olarak farklı sınıfların nesnelerini içerme yeteneğidir. Örneğin, A sınıfı üye olarak B sınıfı bir nesne içerebilir. Burada, B'de tanımlanan tüm genel yöntemler (veya işlevler) A sınıfı içinde yürütülebilir. A sınıfı konteyner olurken, B sınıfı da içerilen sınıf olur. Kompozisyon, Konteyner Taşımacılığı olarak da anılır. Bu örnekte A sınıfının B sınıfından oluştuğu söylenebilir. OOP'da Kompozisyon bir "has-a" ilişkisini temsil eder. Kapta yer alan sınıfın tüm ortak yöntemlerini yürütmek için erişime sahip olmasına rağmen, ek işlevsellikleri değiştiremeyeceğini veya ek işlevsellik sağlayamadığını unutmamak önemlidir. Gerçek bir dünya programlama sorunu söz konusu olduğunda, sınıf TextBox nesnesi sınıf Formunda bulunabilir ve bu nedenle bir Formun bir TextBox içerdiği söylenebilir (veya bir Form bir TextBox'dan oluşur).

Kalıtım ve Kompozisyon arasındaki fark nedir?

Kalıtım ve Kompozisyon iki OOP kavramı olmasına rağmen, programcının elde etmesine izin verdiklerinden oldukça farklıdırlar. Kalıtım, sınıfın özelliklerini ve davranışını bir üst sınıftan genişleterek genişletebilme yeteneğidir. Kompozisyon, sınıfın üyelerin verileri olarak farklı sınıfların nesnelerini içerebilme yeteneğidir. Bir sınıf genişletilirse, tüm genel ve korumalı özellikleri / davranışları devralır ve bu davranışlar alt sınıf tarafından geçersiz kılınabilir. Ancak, bir sınıf başka bir sınıfın içinde bulunuyorsa, kapsayıcı içeriği değiştirme veya davranışa izin vermez. Kalıtım, OOP'da bir "is-a" ilişkisini, kompozisyon "bir-a" ilişkisini temsil eder.