Razlika med abstraktnim razredom in konkretnim razredom

Razlika med abstraktnim razredom in konkretnim razredom
Razlika med abstraktnim razredom in konkretnim razredom

Video: Razlika med abstraktnim razredom in konkretnim razredom

Video: Razlika med abstraktnim razredom in konkretnim razredom
Video: TIPOVI UCENIKA U SKOLI 2024, Julij
Anonim

Abstraktni razred proti konkretnemu razredu

Večina priljubljenih sodobnih objektno usmerjenih programskih jezikov, kot sta Java in C, temelji na razredih. Z uporabo razredov dosegajo objektno usmerjene koncepte, kot so enkapsulacija, dedovanje in polimorfizem. Razredi so abstraktna predstavitev predmetov iz resničnega sveta. Razredi so lahko konkretni ali abstraktni, odvisno od stopnje izvajanja funkcionalnosti njihove metode. Konkretni razred popolnoma izvaja vse svoje metode. Abstraktni razred lahko obravnavamo kot omejeno različico običajnega (konkretnega) razreda, kjer lahko vsebuje delno implementirane metode. Običajno se konkretni razredi imenujejo (samo) razredi.

Kaj je Concrete Class?

Privzeti razred je konkreten razred. Ključna beseda class se uporablja za definiranje razredov (npr. v Javi). Običajno jih preprosto imenujemo razredi (brez pridevnika beton). Konkretni razredi prikazujejo konceptualno predstavitev predmetov iz resničnega sveta. Razredi imajo lastnosti, imenovane atributi. Atributi so implementirani kot globalne spremenljivke in spremenljivke primerkov. Metode v razredih predstavljajo ali definirajo vedenje teh razredov. Metode in atribute razredov imenujemo člani razreda. Običajno se enkapsulacija doseže tako, da so atributi zasebni, medtem ko se ustvarijo javne metode, ki se lahko uporabljajo za dostop do teh atributov. Objekt je primerek razreda. Dedovanje omogoča uporabniku razširitev razredov (imenovanih podrazredi) iz drugih razredov (imenovanih super razredi). Polimorfizem omogoča programerju, da zamenja objekt razreda namesto objekta njegovega nadrazreda. Običajno samostalniki, ki jih najdemo v definiciji problema, neposredno postanejo razredi v programu. In podobno postanejo glagoli metode. Javno, zasebno in zaščiteno so tipični modifikatorji dostopa, ki se uporabljajo za razrede.

Kaj je abstraktni razred?

Abstraktni razredi so deklarirani z uporabo ključne besede Abstract (npr. v Javi,). Običajno abstraktnih razredov, znanih tudi kot abstraktni osnovni razredi (ABC), ni mogoče ustvariti (primerka tega razreda ni mogoče ustvariti). Torej so abstraktni razredi smiselni samo, če programski jezik podpira dedovanje (zmožnost ustvarjanja podrazredov iz razširitve razreda). Abstraktni razredi običajno predstavljajo abstrakten koncept ali entiteto z delno implementacijo ali brez nje. Zato abstraktni razredi delujejo kot nadrejeni razredi, iz katerih so izpeljani podrejeni razredi, tako da bo podrejeni razred delil nepopolne lastnosti nadrejenega razreda in je mogoče dodati funkcionalnost za njihovo dokončanje.

Abstraktni razredi lahko vsebujejo abstraktne metode. Podrazredi, ki razširjajo abstraktni razred, lahko izvajajo te (podedovane) abstraktne metode. Če podrejeni razred izvaja vse takšne abstraktne metode, postane konkreten razred. Če pa se ne, postane podrejeni razred tudi abstraktni razred. Vse to pomeni, da programer, ko nominira razred kot povzetek, pove, da bo razred nepopoln in bo imel elemente, ki jih morajo dopolniti nasledstveni podrazredi. To je lep način za ustvarjanje pogodbe med dvema programerjema, ki poenostavi naloge pri razvoju programske opreme. Programer, ki piše kodo za dedovanje, mora natančno slediti definicijam metode (seveda pa ima lahko svojo izvedbo).

Kakšna je razlika med abstraktnim razredom in konkretnim razredom?

Abstraktni razredi imajo običajno delno ali brez implementacije. Po drugi strani pa imajo konkretni razredi vedno popolno izvajanje svojega vedenja. Za razliko od konkretnih razredov abstraktnih razredov ni mogoče instancirati. Zato je treba abstraktne razrede razširiti, da bi postali uporabni. Abstraktni razredi lahko vsebujejo abstraktne metode, konkretni razredi pa ne. Ko je abstraktni razred razširjen, so vse metode (tako abstraktne kot konkretne) podedovane. Podedovani razred lahko izvaja katero koli ali vse metode. Če vse abstraktne metode niso implementirane, postane tudi ta razred abstrakten razred.

Priporočena: