Kalıtım ve Kompozisyon Arasındaki Fark

Kalıtım ve Kompozisyon Arasındaki Fark
Kalıtım ve Kompozisyon Arasındaki Fark

Video: Kalıtım ve Kompozisyon Arasındaki Fark

Video: Kalıtım ve Kompozisyon Arasındaki Fark
Video: DİKKAT CÜZDANLARINIZI BU ŞEKİLDE BOŞALTIYORLAR! 2024, Temmuz
Anonim

Kalıtım vs Kompozisyon

Kalıtım ve Kompozisyon, OOP'de (Nesne Yönelimli Programlama) bulunan iki önemli kavramdır. Basit bir ifadeyle, hem Kompozisyon hem de Kalıtım, bir sınıfa ek özellikler veya davranış sağlamakla ilgilenir. Kalıtım, bir sınıfın, bir üst sınıftan özellikleri ve davranışı genişleterek miras alma yeteneğidir. Öte yandan, Kompozisyon, bir sınıfın üye verisi olarak farklı sınıfların nesnelerini içerme yeteneğidir.

Miras nedir?

Yukarıda bahsedildiği gibi Kalıtım, bir sınıfın bir üst sınıftan özellikleri ve davranışı genişleterek miras alma yeteneğidir. Kalıtım, temel olarak, yeni tanımlanmış bir sınıf tarafından mevcut bir sınıfın özelliklerinin ve davranışının genişletilmesine izin vererek kodun yeniden kullanılmasını sağlar. A sınıfı B'yi genişletiyorsa, B sınıfına üst sınıf (veya süper sınıf) ve A sınıfına alt sınıf (veya türetilmiş sınıf/ alt sınıf) denir. Bu örnek senaryoda, A sınıfı, süper sınıfın (B) tüm genel ve korumalı özniteliklerini ve yöntemlerini devralır. Alt sınıf, isteğe bağlı olarak üst sınıftan devralınan davranışı geçersiz kılabilir (yöntemlere yeni veya genişletilmiş işlevsellik sağlar).

Kalıtım, OOP'de bir "is-a" ilişkisini temsil eder. Bu, esasen A'nın da bir B olduğu anlamına gelir. Başka bir deyişle, B, belirli bir gerçek dünya varlığının genel bir tanımına sahip sınıf olabilir, ancak A belirli bir uzmanlığı belirtir. Gerçek dünya programlama probleminde, Person sınıfı, Employee sınıfını oluşturmak için genişletilebilir. Buna uzmanlaşma denir. Ancak, önce Çalışan sınıfını da oluşturabilir ve ardından onu bir Kişi sınıfına da genelleştirebilirsiniz (örn.e. genelleme). Bu örnekte Çalışan, Kişi'nin tüm özelliklerine ve davranışlarına sahip olacaktır (yani Çalışan da bir Kişidir) ve bazı ek işlevler de içerebilir (yani Kişi Çalışan değildir).

Kompozisyon nedir?

Composition, bir sınıfın üye verileri olarak farklı sınıflardan nesneler 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ı kapsayıcı olurken, B sınıfı kapsanan sınıf olur. Kompozisyon ayrıca Konteyner Gemisi olarak da adlandırılır. Bu örnekte, A sınıfının B sınıfından oluştuğu söylenebilir. OOP'de Kompozisyon, bir “has-a” ilişkisini temsil eder. Kapsayıcının, içerdiği sınıfın tüm genel yöntemlerini yürütme erişimi olmasına rağmen, değiştiremediğini veya ek işlevsellik sağlayamadığını belirtmek önemlidir. Gerçek bir programlama problemi söz konusu olduğunda, TextBox sınıfının bir nesnesi Form sınıfında yer alabilir ve bu nedenle bir Formun bir TextBox içerdiği (veya alternatif olarak bir Formun bir TextBox'tan oluştuğu) söylenebilir.

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 verdikleri şeyde oldukça farklıdır. Kalıtım, bir sınıfın, bir üst sınıftan özellikleri ve davranışı genişleterek miras alma yeteneğiyken, Kompozisyon, bir sınıfın üye verileri olarak farklı sınıfların nesnelerini içerme yeteneğidir. Bir sınıf genişletilirse, tüm genel ve korunan ö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 içinde yer alıyorsa, kap, içerdiğine davranış ekleme veya değiştirme becerisine sahip olmaz. Kalıtım, OOP'de bir "is-a" ilişkisini temsil ederken, Kompozisyon bir "has-a" ilişkisini temsil eder.

Önerilen: