Mis on Java pärimine, superklass ja alaklass?

Oluline kontseptsioon objektorienteeritud programmeerimisel on pärimine. See annab võimaluse objektid määratleda suhteid üksteisega. Nagu nimigi ütleb, on objekt võimeline pärima omadusi teiselt objektilt.

Konkreetsemalt öeldes on objekt võimeline oma olekut ja käitumist oma lastele edasi andma. Pärandi toimimiseks peavad objektidel olema üksteisega ühised omadused.

Sisse Java, klasse saab võtta teistest klassidest, mida võib võtta teistelt jne. Selle põhjuseks on see, et nad saavad omadusi selle kohal olevalt klassilt pärida kuni kõige kõrgema objektiklassini.

Java pärimise näide

Oletame, et teeme inimese nimega klassi, mis tähistab meie füüsilisi omadusi. See on üldklass, mis võiks esindada teid, mind või kedagi teist maailmas. Selle olek jälgib selliseid asju nagu jalgade arv, käte arv ja veregrupp. Sellel on käitumine nagu söömine, magamine ja kõndimine.

Inimesel on hea saada üldine arusaam sellest, mis meid kõiki ühesuguseks teeb, aga näiteks ei saa see mulle rääkida soolistest erinevustest. Selleks oleks vaja teha kaks uut klassi tüüpi, kelle nimi on Mees ja Naine. Nende kahe klassi olek ja käitumine erinevad üksteisest paljuski, välja arvatud need, mille nad pärandavad inimeselt.

instagram viewer

Seetõttu võimaldab pärimine hõlmata vanemate klassi olekut ja käitumist oma lapsega. Seejärel saab lasteklass laiendada olekut ja käitumist, et kajastada erinevusi, mida see esindab. Selle kontseptsiooni kõige olulisem aspekt, mida tuleb meeles pidada, on see, et lasteklass on vanema spetsiaalsem versioon.

Mis on superklass?

Kahe objekti vahelistes suhetes on superklass klassile antud nimi, millelt ta päritakse. See kõlab nagu super duper-klass, kuid pidage meeles, et see on üldisem versioon. Paremad kasutatavad nimed võivad olla põhiklass või lihtsalt vanemklass.

Seekordse reaalsema näite jaoks võiksime olla superklassi nimi Isik. Selle olek sisaldab inimese nime, aadressi, pikkust ja kaalu ning käitub nagu sisseoste tegema, voodit tegema ja telekat vaatama.

Me võiksime teha kaks uut klassi, mis pärib inimeselt, kelle nimi on õpilane ja töötaja. Need on rohkem spetsialiseerunud versioonid, kuna kuigi neil on nimed, aadressid, telerit vaadatakse ja poes käiakse, on neil ka üksteisest erinevad omadused.

Töötajal võib olla riik, kus on ametinimetus ja töökoht, samas kui õpilasel võib olla andmeid õppeala ja õppeasutuse kohta.

Superklassi näide:

Kujutage ette, et määratlete Isikuklassi:

avaliku klassi inimene. { }

Selle klassi laiendamisega saab luua uue klassi:

avaliku klassi töötaja laiendab isikut. { }

Isikuklassi peetakse töötajate klassi superklassiks.

Mis on alaklass?

Kahe objekti suhetes on alamklass klassile antud nimi, mis pärib ülemklassist. Ehkki see kõlab pisut loid, pidage meeles, et see on superklassi spetsialiseeritum versioon.

Eelmises näites on alaklassid õpilane ja töötaja.

Alamklasse võib nimetada ka tuletatud klassideks, lasteklassideks või laiendatud klassideks.

Kui palju alamklasse mul võib olla?

Alamklasse võib olla nii palju kui soovite. Ei ole piiranguid, kui palju alamklasse ülemklass võib olla. Samuti ei ole päranditasemete arv piiratud. Klasside hierarhia võib üles ehitada teatavale ühinemispiirkonnale.

Kui vaatate Java API teeke, näete tegelikult palju päranduse näiteid. API-de iga klass päritakse klassist nimega java.lang. Objekt. Näiteks võite JFrame'i objekti kasutamise ajal pärida pika rea ​​lõpus:

 java.lang. Objekt. laiendanud java.awt. Komponent. laiendanud java.awt. Konteiner. laiendanud java.awt. Aken. laiendanud java.awt. Raam. laiendatud javax.swing abil. JFrame. 

Kui Java alamklass pärib suveklassist, siis nimetatakse seda superklassi laiendamiseks.

Kas minu alaklass võib pärida paljudest superklassidest?

Ei. Java-s saab alamklass laiendada ainult ühte superklassi.

Miks kasutada pärimist?

Pärimine võimaldab programmeerijatel juba kirjutatud koodi uuesti kasutada. Inimklassi näites ei pea me veregrupi hoidmiseks looma klassides Mehed ja Naised uusi välju, sest saame kasutada inimklassilt päritud välja.

Pärandi kasutamise teine ​​eelis on see, et see võimaldab meil käsitleda alaklassi nii, nagu see oleks sulaklass. Näiteks oletame, et programm on loonud mitu objekti Objektid Mees ja Naine. Võimalik, et programm peab kõigi nende objektide unerežiimi kutsuma. Kuna magamiskäitumine on inimese ülemklassi käitumine, saame kõik Mehe ja Naise objektid grupeerida ja käsitleda neid nii, nagu oleksid need inimobjektid.

instagram story viewer