Kalıtım ve Konteynerlik Arasındaki Fark

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

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

Video: Kalıtım ve Konteynerlik Arasındaki Fark
Video: İhalede Yanlış Teklif Verirsem Ne Olur? İptal Edebilir miyim? 2024, Temmuz
Anonim

Kalıtım vs Konteynerlik

Kalıtım ve Konteynerlik, OOP'de bulunan iki önemli kavramdır (Nesne Yönelimli Programlama Örneği: C++). Basit bir ifadeyle, hem Containership hem de Inheritance, 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, Containership, bir sınıfın üye verisi olarak farklı sınıflardan nesneler 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).

Konteyner nedir?

Containership, bir sınıfın farklı sınıflardan nesneleri üye verisi olarak 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. Konteyner gemisi aynı zamanda Kompozisyon 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 Containership, 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.

Miras ve Konteynerlik Arasındaki Fark

Kalıtım ve Konteynerlik iki OOP kavramı olsa da, programcının başarmasına izin vermeleri bakımından oldukça farklıdırlar. Kalıtım, bir sınıfın bir üst sınıftan özellikleri ve davranışı genişleterek miras alma yeteneğidir, Containership ise bir sınıfın üye verileri olarak farklı sınıflardan nesneler 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, Containership bir "has-a" ilişkisini temsil eder.

Önerilen: