Razlika med abstraktnim razredom in dedovanjem

Kazalo:

Razlika med abstraktnim razredom in dedovanjem
Razlika med abstraktnim razredom in dedovanjem

Video: Razlika med abstraktnim razredom in dedovanjem

Video: Razlika med abstraktnim razredom in dedovanjem
Video: NAT Explained - Network Address Translation 2024, Julij
Anonim

Abstraktni razred proti dedovanju

Abstraktni razred in dedovanje sta dva pomembna objektno usmerjena koncepta, ki ju najdemo v številnih objektno usmerjenih programskih jezikih, kot je Java. Abstraktni razred je mogoče obravnavati kot abstraktno različico običajnega (konkretnega) razreda, medtem ko dedovanje omogoča, da novi razredi razširijo druge razrede. Abstraktni razred je razred, ki ga ni mogoče inicializirati, lahko pa ga razširite. Torej so abstraktni razredi smiselni le, če programski jezik podpira dedovanje. V Javi so abstraktni razredi deklarirani s ključno besedo Abstract, medtem ko se ključna beseda Extends uporablja za dedovanje iz (super)razreda.

Kaj je abstraktni razred?

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, je to 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).

Kaj je dedovanje?

Dedovanje je objektno usmerjen koncept, ki omogoča, da novi razredi razširijo druge razrede. Ključna beseda Extends se uporablja za implementacijo koncepta dedovanja v programskem jeziku Java. Dedovanje v bistvu zagotavlja ponovno uporabo kode tako, da omogoča razširitev lastnosti in obnašanja obstoječega razreda z na novo definiranim razredom. Ko nov podrazred (ali izpeljani razred) razširi nadrazred (ali nadrejeni razred), bo ta podrazred podedoval vse atribute in metode nadrazreda. Podrazred lahko po želji preglasi vedenje (zagotovi novo ali razširjeno funkcionalnost metod), podedovano od nadrejenega razreda. Običajno podrazred ne more razširiti več nadrazredov (npr. v Javi). Zato razširitev ne morete uporabiti za večkratno dedovanje. Če želite imeti večkratno dedovanje, morate uporabiti vmesnike.

Kakšna je razlika med abstraktnim razredom in dedovanjem?

Abstraktni razredi običajno predstavljajo abstrakten koncept ali entiteto z delno implementacijo ali brez nje. Dedovanje omogoča, da novi razredi razširijo druge razrede. Ker abstraktnih razredov ni mogoče instancirati, morate za uporabo abstraktnih razredov uporabiti koncept dedovanja. V nasprotnem primeru abstraktni razred ni uporaben. Abstraktni razredi lahko vsebujejo abstraktne metode in ko je razred razširjen, so vse metode (abstraktne in konkretne) podedovane. Podedovani razred lahko izvaja katero koli ali vse metode. Če vse abstraktne metode niso implementirane, postane tudi ta razred abstraktni razred. Razred ne more dedovati iz več kot enega abstraktnega razreda (to sam po sebi ni lastnost abstraktnih razredov, ampak prej omejitev dedovanja).

Sorodne objave:

Image
Image
Image
Image

Razlika med abstraktnim razredom in konkretnim razredom

Image
Image
Image
Image

Razlika med virtualnim in abstraktnim

Image
Image
Image
Image

Razlika med abstraktnim razredom in vmesnikom

Image
Image
Image
Image

Razlika med Implements in Extends

Image
Image
Image
Image

Razlika med grafom in drevesom

File Under: Programiranje Označeno z: ABC, abstraktni, abstraktni osnovni razredi, abstraktni razred, abstraktni razredi, abstraktna ključna beseda, abstraktne metode, konkretni razred, ključna beseda Extends, dedovanje, razred dedovanja, podedovani razred, Java, večkratno dedovanje, objektno usmerjeni koncepti, običajni razred, super razred

Slika
Slika

O avtorju: Indika

Indika, dipl.inž., MSECE Računalništvo, dr. Računalništvo, je docent in se raziskovalno zanima za področja bioinformatike, računalniške biologije in biomedicinske obdelave naravnega jezika.

Komentarji

  1. Slika
    Slika

    Jason pravi

    30. avgust 2017 ob 13:25

    Hvala za razlago razlike. Vsa moja vprašanja so bila s tem rešena.

    Odgovori

  2. Slika
    Slika

    Aus pravi

    10. maj 2019 ob 15:04

    najboljši odgovor na spletu, Učitelj ne razlaga sranja in nima smisla, mono ton mf. Tako razlagaš koncepte.

    Odgovori

Pustite odgovor Prekliči odgovor

Vaš e-poštni naslov ne bo objavljen. Obvezna polja so označena z

Komentar

Ime

E-pošta

Spletna stran

Zahtevaj članek
Zahtevaj članek
Zahtevaj članek
Zahtevaj članek

Predstavljene objave

Razlika med simptomi koronavirusa in prehlada
Razlika med simptomi koronavirusa in prehlada

Razlika med simptomi koronavirusa in prehlada

Razlika med koronavirusom in SARS
Razlika med koronavirusom in SARS

Razlika med koronavirusom in SARS

Razlika med koronavirusom in gripo
Razlika med koronavirusom in gripo

Razlika med koronavirusom in gripo

Razlika med koronavirusom in covidom 19
Razlika med koronavirusom in covidom 19

Razlika med koronavirusom in covidom 19

Morda vam bo všeč

Razlika med sibirskim haskijem in malamutom

Razlika med računoma AB in BC

Priporočena: