Paveldėjimo ir talpyklos skirtumas

Paveldėjimo ir talpyklos skirtumas
Paveldėjimo ir talpyklos skirtumas

Video: Paveldėjimo ir talpyklos skirtumas

Video: Paveldėjimo ir talpyklos skirtumas
Video: First Price Auctions Explained [Whiteboard Video] 2024, Liepa
Anonim

Paveldėjimas prieš konteinerį

Paveldėjimas ir sudėtis yra dvi svarbios sąvokos, aptinkamos OOP (objektinio programavimo pavyzdys: C++). Paprastais žodžiais tariant, tiek talpykla, tiek paveldėjimas susijęs su papildomų savybių ar elgesio suteikimu klasei. Paveldėjimas – tai klasės galimybė paveldėti savybes ir elgesį iš pirminės klasės, ją išplečiant. Kita vertus, talpykla yra klasės galimybė kaip narių duomenis turėti skirtingų klasių objektus.

Kas yra paveldėjimas?

Kaip minėta, paveldėjimas yra klasės galimybė paveldėti savybes ir elgesį iš pirminės klasės, ją išplečiant. Paveldėjimas iš esmės suteikia kodo pakartotinį naudojimą, leidžiant išplėsti esamos klasės savybes ir elgesį naujai apibrėžta klase. Jei A klasė išplečia B, tada B klasė vadinama pagrindine klase (arba super klase), o A klasė vadinama antrine klase (arba išvestine klase / poklase). Šiame scenarijaus pavyzdyje A klasė paveldės visus viešuosius ir saugomus aukščiausios klasės (B) atributus ir metodus. Poklasis gali pasirinktinai nepaisyti (suteikti metodams naują arba išplėstą funkcionalumą) elgesį, paveldėtą iš pirminės klasės. Paveldėjimas reiškia „yra-a“ryšį OOP. Tai iš esmės reiškia, kad A taip pat yra B. Kitaip tariant, B gali būti klasė, turinti bendrą tam tikro realaus pasaulio objekto aprašymą, tačiau A nurodo tam tikrą specializaciją. Esant realaus pasaulio programavimo problemai, Asmens klasę galima išplėsti, kad būtų sukurta darbuotojų klasė. Tai vadinama specializacija. Bet jūs taip pat pirmiausia galite sukurti klasę Darbuotojas, o tada apibendrinti ją taip pat į Asmens klasę (t.e. apibendrinimas). Šiame pavyzdyje Darbuotojas turės visas Asmens savybes ir elgesį (t. y. darbuotojas taip pat yra asmuo) ir gali turėti tam tikrų papildomų funkcijų (taigi, asmuo nėra darbuotojas).

Kas yra konteinerių siuntimas?

Konteineris yra klasės galimybė kaip narių duomenis turėti skirtingų klasių objektus. Pavyzdžiui, A klasėje gali būti B klasės objektas. Čia visi viešieji metodai (arba funkcijos), apibrėžti B, gali būti vykdomi A klasėje. A klasė tampa konteineriu, o B klasė – esančia klase. Konteineris taip pat vadinamas kompozicija. Šiame pavyzdyje galima sakyti, kad A klasę sudaro B klasė. OOP talpykloje yra ryšys „has-a“. Svarbu pažymėti, kad nors konteineris turi prieigą vykdyti visus viešuosius įtrauktos klasės metodus, jis negali pakeisti ar suteikti papildomų funkcijų. Kalbant apie realaus pasaulio programavimo problemą, klasėje „Form“gali būti „TextBox“klasės objektas, taigi galima sakyti, kad formoje yra „TextBox“(arba formą sudaro „TextBox“).

Skirtumas tarp paveldėjimo ir talpyklos

Nors paveldėjimas ir talpinimas yra dvi OOP sąvokos, jos labai skiriasi tuo, ką leidžia programuotojui pasiekti. Paveldėjimas – tai klasės galimybė paveldėti ypatybes ir elgesį iš pirminės klasės ją išplečiant, o talpykla – tai klasės gebėjimas turėti skirtingų klasių objektus kaip narių duomenis. Jei klasė išplečiama, ji paveldi visas viešąsias ir saugomas savybes / elgseną, o poklasis gali nepaisyti šių veiksmų. Bet jei klasė yra kitoje, konteineris negauna galimybės keisti ar pridėti esančios klasės elgesio. Paveldėjimas reiškia santykį „yra“OOP, o „Containership“reiškia santykį „turi-a“.

Rekomenduojamas: