Qhov Sib Txawv Ntawm Cov Cai thiab Cov Thawv

Qhov Sib Txawv Ntawm Cov Cai thiab Cov Thawv
Qhov Sib Txawv Ntawm Cov Cai thiab Cov Thawv

Video: Qhov Sib Txawv Ntawm Cov Cai thiab Cov Thawv

Video: Qhov Sib Txawv Ntawm Cov Cai thiab Cov Thawv
Video: Saib Mis paub Poj niam (hluas nkauj) tus yam ntxwv lub siab 2024, Hlis ntuj nqeg
Anonim

Inheritance vs Containership

Txuas thiab Ntim yog ob lub ntsiab lus tseem ceeb hauv OOP (Object Oriented Programming Piv txwv: C ++). Hauv cov ntsiab lus yooj yim, ob qho tib si Containership thiab Inheritance cuam tshuam nrog kev muab cov khoom ntxiv lossis kev coj cwj pwm rau hauv chav kawm. Inheritance yog lub peev xwm rau cov chav kawm kom tau txais txiaj ntsig thiab coj tus cwj pwm los ntawm cov niam txiv hauv chav kawm los ntawm kev txuas ntxiv mus. Ntawm qhov tod tes, Containership yog lub peev xwm ntawm chav kawm kom muaj cov khoom ntawm cov chav sib txawv raws li cov tswv cuab cov ntaub ntawv.

Dab tsi yog Txoj Cai?

Raws li tau hais los saum toj no, Txoj Cai Lij Choj yog lub peev xwm rau chav kawm kom tau txais txiaj ntsig thiab coj tus cwj pwm los ntawm niam txiv chav kawm los ntawm kev txuas ntxiv mus. Inheritance tseem ceeb muab cov cai rov siv dua los ntawm kev tso cai txuas ntxiv cov khoom thiab tus cwj pwm ntawm cov chav kawm uas twb muaj lawm los ntawm chav kawm tshiab. Yog chav kawm A txuas B, ces chav B yog hu ua niam txiv chav kawm (los yog chav kawm super) thiab chav A yog hu ua tus me nyuam chav kawm (los yog derived class/sub class). Hauv qhov piv txwv no, chav kawm A yuav tau txais tag nrho cov pej xeem thiab kev tiv thaiv cov yam ntxwv thiab cov txheej txheem ntawm chav kawm super (B). Cov subclass muaj peev xwm xaiv tau override (muab kev ua haujlwm tshiab lossis txuas ntxiv mus rau txoj hauv kev) tus cwj pwm tau txais los ntawm niam txiv chav kawm. Cov cuab yeej cuab tam sawv cev rau "yog-ib" kev sib raug zoo hauv OOP. Qhov no tseem ceeb txhais tau hais tias A kuj yog B. Hauv lwm lo lus, B tuaj yeem yog chav kawm nrog cov lus piav qhia dav dav ntawm lub ntiaj teb tiag tiag tab sis A qhia txog qee qhov tshwj xeeb. Hauv qhov teeb meem tiag tiag hauv ntiaj teb, cov neeg ua haujlwm yuav raug txuas ntxiv los tsim cov chav ua haujlwm. Qhov no hu ua specialization. Tab sis koj tuaj yeem ua ntej tsim cov neeg ua haujlwm hauv chav kawm thiab tom qab ntawd nthuav dav nws mus rau Ib Tug Neeg Chav Kawm thiab (i.e. generalization). Hauv qhov piv txwv no, Tus Neeg Ua Haujlwm yuav muaj tag nrho cov khoom thiab tus cwj pwm ntawm Tus Neeg (piv txwv li Cov Neeg Ua Haujlwm kuj yog Tus Neeg) thiab yuav muaj qee qhov kev ua haujlwm ntxiv (yog li, Tus Neeg tsis yog Tus Neeg Ua Haujlwm) ib yam nkaus.

Lub Thawv yog dab tsi?

Containership yog lub peev xwm ntawm chav kawm kom muaj cov khoom sib txawv raws li cov ntaub ntawv tswv cuab. Piv txwv li, chav kawm A tuaj yeem muaj qhov khoom ntawm chav kawm B ua tus tswv cuab. Ntawm no, txhua txoj hauv kev pej xeem (lossis kev ua haujlwm) uas tau teev tseg hauv B tuaj yeem ua tiav hauv chav kawm A. Chav A yuav dhau los ua lub thawv, thaum chav kawm B dhau los ua chav kawm. Containership kuj tseem hu ua Composition. Hauv qhov piv txwv no, nws tuaj yeem hais tias chav kawm A yog suav nrog chav B. Hauv OOP, Containership sawv cev rau "muaj-a" kev sib raug zoo. Nws yog ib qho tseem ceeb uas yuav tsum nco ntsoov tias, txawm tias lub thawv ntim tau nkag mus rau kev ua tiav txhua txoj hauv kev pej xeem ntawm cov chav kawm, nws tsis tuaj yeem hloov lossis muab kev ua haujlwm ntxiv. Thaum nws los txog rau lub ntiaj teb tiag tiag programming teeb meem, ib yam khoom ntawm chav kawm TextBox tej zaum yuav muaj nyob rau hauv chav kawm ntawv daim ntawv, thiab yog li hais tias ib daim ntawv muaj ib tug TextBox (los yog lwm yam, ib daim ntawv yog tsim los ntawm ib tug TextBox).

Qhov Sib txawv ntawm Txoj Cai thiab Cov Thawv

Txawm hais tias Inheritance thiab Containership yog ob lub tswv yim OOP, lawv txawv heev ntawm qhov lawv tso cai rau tus programmer ua tiav. Inheritance yog lub peev xwm rau cov chav kawm kom tau txais cov khoom thiab kev coj tus cwj pwm los ntawm cov niam txiv hauv chav kawm los ntawm kev txuas ntxiv mus, thaum Containership yog lub peev xwm ntawm chav kawm kom muaj cov khoom sib txawv ntawm cov chav kawm raws li cov tswv cuab cov ntaub ntawv. Yog tias ib chav kawm txuas ntxiv, nws tau txais tag nrho cov pej xeem thiab kev tiv thaiv cov khoom / tus cwj pwm thiab cov cwj pwm no yuav raug hla dhau los ntawm subclass. Tab sis yog tias ib chav kawm muaj nyob rau hauv lwm qhov, lub thawv tsis tau txais lub peev xwm hloov lossis ntxiv tus cwj pwm rau cov ntim. Cov cuab yeej cuab tam sawv cev rau "yog-ib" kev sib raug zoo hauv OOP, thaum Lub Thawv Thauj sawv cev rau "muaj-a" kev sib raug zoo.

Pom zoo: