Miras ve Kapsayıcılık
Kalıtım ve Kapsayıcılık OOP'ta bulunan iki önemli kavramdır (Nesneye Yönelik Programlama Örneği: C ++). Basit bir ifadeyle, hem Konteyner hem de Kalıtım bir sınıfa ek özellikler veya davranışlar sağlamakla ilgilenir. Kalıtım, bir sınıfın bir üst sınıftan özellikleri ve davranışı genişleterek devralma yeteneğidir. Öte yandan, Konteyner, bir sınıfın üye verileri olarak farklı sınıflardaki nesneleri içerebilme yeteneğidir.
Kalıtım nedir?
Yukarıda belirtildiği gibi, Kalıtım, bir sınıfın bir üst sınıftan özelliklerini ve davranışını genişleterek devralma yeteneğidir. Devralma, temelde varolan bir sınıfın özelliklerini ve davranışını yeni tanımlanmış bir sınıf tarafından genişletmeye izin vererek kodun yeniden kullanımını sağlar. A sınıfı B'yi genişletirse, B sınıfına üst sınıf (veya süper sınıf), A sınıfına ise 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 ortak ve korunan ö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 aslında A'nın 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 bir 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ı oluşturabilir ve daha sonra bunu bir Kişi sınıfına da genelleştirebilirsiniz (yani genelleme). Bu örnekte, Çalışan Kişinin tüm özelliklerine ve davranışına sahip olacaktır (yani Çalışan aynı zamanda bir Kişidir) ve bazı ek işlevler de içerebilir (bu nedenle, Kişi Çalışan Değildir).
Konteyner Nedir?
Kapsayıcılık, bir sınıfın üye verileri olarak farklı sınıflardaki nesneleri içermesidir. Ö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ı kap olurken, B sınıfı içerilen sınıf olur. Kapsayıcılığa Kompozisyon da denir. Bu örnekte, A sınıfının B sınıfından oluştuğu söylenebilir. OOP'ta, Kapsayıcılık “has-a” ilişkisini temsil eder. Kapsayıcı, içerilen sınıfın tüm genel yöntemlerini yürütme erişimine sahip olsa da, ek işlevsellik değiştiremediğini veya sağlayamadığını not etmek önemlidir. Gerçek bir dünya programlama problemi söz konusu olduğunda, TextBox sınıfının bir nesnesi Form sınıfında bulunabilir ve bu nedenle bir Form'un bir TextBox içerdiği söylenebilir (veya alternatif olarak bir Form bir TextBox'tan oluşur).
Miras ve Kapsayıcılık Arasındaki Fark
Kalıtım ve Kapsayıcılık iki OOP kavramı olmasına rağmen, programcının başarmasına izin verdiklerinden oldukça farklıdırlar. Kalıtım, bir sınıfın genişleterek bir üst sınıftan özellikleri ve davranışı devralma yeteneğidir; Kapsayıcılık ise bir sınıfın üye veri olarak farklı sınıflardaki nesneleri içermesidir. Bir sınıf genişletilirse, tüm ortak ve korunan özellikleri / davranışı 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ıfta yer alıyorsa, kap, içerileni değiştirme veya davranış ekleme yeteneği elde etmez. Miras, OOP'de bir “is-a” ilişkisini, Kapsayıcılık ise “has-a” ilişkisini temsil eder.