Különbség Az öröklés és Az összetétel Között

Különbség Az öröklés és Az összetétel Között
Különbség Az öröklés és Az összetétel Között

Videó: Különbség Az öröklés és Az összetétel Között

Videó: Különbség Az öröklés és Az összetétel Között
Videó: 1600 ft.-os uborkagyalu teszt :-) mert jön az ubisali és nem mindenki tudja felvágni kézzel mint én! 2024, Április
Anonim

Öröklés vs összetétel

Az öröklés és a kompozíció két fontos fogalom található az OOP-ban (Object Oriented Programming). Egyszerűbben fogalmazva, az Összetétel és az Öröklés egyaránt további tulajdonságok vagy viselkedés biztosításával foglalkozik egy osztály számára. Az öröklődés az osztály azon képessége, hogy kiterjesztve örökölje a tulajdonságokat és a viselkedést a szülő osztálytól. Másrészt a Kompozíció egy osztály azon képessége, hogy tagként különböző osztályú objektumokat tartalmazzon.

Mi az öröklés?

Amint fentebb említettük, az öröklődés egy osztály azon képessége, hogy kibővítésével örökölje a tulajdonságokat és a viselkedést a szülő osztálytól. Az öröklés lényegében biztosítja a kód újrafelhasználását azáltal, hogy lehetővé teszi egy meglévő osztály tulajdonságainak és viselkedésének kibővítését egy újonnan definiált osztály által. Ha az A osztály kiterjeszti a B-t, akkor a B osztályt szülőosztálynak (vagy szuperosztálynak), az A osztályt pedig gyermekosztálynak (vagy származtatott osztálynak / alosztálynak) nevezik. Ebben a példapéldában az A osztály örökli a szuperosztály (B) összes nyilvános és védett tulajdonságát és módszerét. Az alosztály opcionálisan felülírhatja (új vagy kibővített funkcionalitást biztosíthat a módszereknek) a szülőosztálytól örökölt viselkedést.

Az öröklés „O-a” kapcsolatot jelent az OOP-ban. Ez lényegében azt jelenti, hogy A egyben B. Más szóval, B lehet egy osztály, amely egy adott valós entitás általános leírásával rendelkezik, de A meghatároz egy bizonyos specializációt. Valóságos programozási probléma esetén a Person osztály kibővíthető az Employee osztály létrehozásával. Ezt specializációnak nevezzük. De előbb létrehozhatja az Employee osztályt is, majd általánosíthatja azt egy Person osztályra is (azaz általánosítás). Ebben a példában az Alkalmazott rendelkezni fog a Személy összes tulajdonságával és viselkedésével (azaz az Alkalmazott személy is), és tartalmazhat további funkciókat is (tehát a Személy nem alkalmazott).

Mi az összetétel?

A kompozíció egy osztály azon képessége, hogy tag adatként különböző osztályú objektumokat tartalmazzon. Például az A osztály tartalmazhat egy B osztályú objektumot tagként. Itt a B-ben definiált összes nyilvános módszer (vagy funkció) végrehajtható az A osztályon belül. Az A osztály lesz a konténer, míg a B osztály a zárt osztály. A kompozíciót Containership néven is emlegetik. Ebben a példában elmondható, hogy az A osztály a B osztályból áll. Az OOP-ban a Composition egy „van-van” kapcsolatot jelent. Fontos megjegyezni, hogy annak ellenére, hogy a tárolónak hozzáférése van a benne foglalt osztály összes nyilvános metódusának végrehajtásához, nem képes megváltoztatni vagy további funkciókat biztosítani. Amikor egy valós világú programozási problémáról van szó, a TextBox osztály objektuma szerepelhet az osztály űrlapban,és így elmondható, hogy egy űrlap tartalmaz egy TextBox-ot (vagy alternatívaként, az űrlap egy TextBox-ból áll).

Mi a különbség az öröklés és az összetétel között?

Bár az öröklődés és a kompozíció két OOP-fogalom, meglehetősen különböznek egymástól abban, amit lehetővé teszik a programozó számára. Az öröklődés az osztály azon képessége, hogy kibővítésével örökölje a tulajdonságokat és a viselkedést a szülő osztálytól, míg a Kompozíció egy osztály azon képessége, hogy tagadatokként különböző osztályú objektumokat tartalmazzon. Ha egy osztály kibővül, akkor az összes nyilvános és védett tulajdonságot / viselkedést örökli, és ezeket a viselkedéseket felülírhatja az alosztály. De ha egy osztály egy másikban található, a tároló nem képes megváltoztatni vagy hozzáadni a viselkedést a tartalomhoz. Az öröklés az OOP-ban „egy-egy” viszonyt jelent, míg a „kompozíció” egy-egy kapcsolatot.

Ajánlott: