Pärilikkuse Ja Koosseisu Erinevus

Pärilikkuse Ja Koosseisu Erinevus
Pärilikkuse Ja Koosseisu Erinevus

Video: Pärilikkuse Ja Koosseisu Erinevus

Video: Pärilikkuse Ja Koosseisu Erinevus
Video: Haruldased haigused – pereelu ja pärilikkus 2024, Aprill
Anonim

Pärand vs koostis

Pärimine ja koosseis on kaks olulist mõistet, mis on leitud OOP-st (Object Oriented Programming). Lihtsamalt öeldes tegelevad nii koostis kui ka pärimine klassile täiendavate omaduste või käitumise pakkumisega. Pärimine on klassi võime pärida vanematelt klassilt omadusi ja käitumist, laiendades seda. Teisalt on Kompositsioon klassi võime sisaldada liikmeandmetena eri klasside objekte.

Mis on pärimine?

Nagu ülalpool mainitud, on pärimine klassi võime pärida vanemklassi omadusi ja käitumist, laiendades seda. Pärand annab sisuliselt koodi taaskasutuse, võimaldades olemasoleva klassi omadusi ja käitumist laiendada äsja määratletud klassi võrra. Kui A-klass ulatub B-ni, nimetatakse B-klassi vanemklassiks (või superklassiks) ja A-klassi lasteklassiks (või tuletatud klassiks / alamklassiks). Selle stsenaariumi korral pärib klass A kõik superklassi (B) avalikud ja kaitstud atribuudid ja meetodid. Alamklass võib valikuliselt alistada (pakkuda meetoditele uue või laiendatud funktsionaalsuse) vanemklassilt päritud käitumise.

Pärimine tähistab OOP-s suhet. See tähendab sisuliselt seda, et A on ka B. Teisisõnu, B võib olla klass, millel on üldine kirjeldus reaalsest maailmast, kuid A täpsustab teatud spetsialiseerumist. Reaalses maailmas programmeerimisprobleemi korral võiks klassi Person laiendada, et luua töötaja klass. Seda nimetatakse spetsialiseerumiseks. Kuid võiksite kõigepealt luua ka klassi Töötaja ja seejärel üldistada seda ka klassile Isik (st üldistamine). Selles näites on töötajal kõik inimese omadused ja käitumine (st töötaja on ka isik) ja see võib sisaldada ka mõnda täiendavat funktsionaalsust (nii et inimene ei ole töötaja).

Mis on koostis?

Kompositsioon on klassi võime sisaldada liikmeandmetena eri klasside objekte. Näiteks võib klass A sisaldada liikmena B-klassi objekti. Siin saab kõiki B-s määratletud avalikke meetodeid (või funktsioone) täita klassis A. A-klass saab konteineriks, B-klass aga suletud klassiks. Kompositsiooni nimetatakse ka konteinerlaevaks. Selles näites võib öelda, et klass A koosneb klassist B. OOP-s tähistab Composition "on-a" suhet. Oluline on märkida, et kuigi konteineril on juurdepääs kõigi suletud klassi avalike meetodite käivitamiseks, ei ole see võimeline muutma ega pakkuma täiendavaid funktsioone. Kui tegemist on reaalse maailma programmeerimisprobleemiga, võib klassi TextBox objekt sisalduda klassivormis,ja seega võib öelda, et vorm sisaldab tekstikasti (või alternatiivina koosneb vorm tekstikastist).

Mis vahe on pärimisel ja koosseisul?

Kuigi pärimine ja koosseis on kaks OOP-mõistet, on need üsna erinevad selle poolest, mida nad lubavad programmeerijal saavutada. Pärimine on klassi võime pärida vanemklassi omadusi ja käitumist, laiendades seda, Kompositsioon aga klassi võime sisaldada liikmeandmetena eri klasside objekte. Kui klassi laiendatakse, pärib see kõik avalikud ja kaitstud omadused / käitumise ning alamklass võib need käitumised alistada. Kuid kui klass sisaldub teises, ei saa konteiner võimalust muuta või lisada käitumisele kaasatud. Pärimine tähistab OOP-s suhet "is-a", samas kui "Composition" esindab suhet "on-a".

Soovitatav: