Pärand sisse Java (koos näitega)
Mis on pärand?
Pärisosa on mehhanism, mille käigus üks klass omandab teise klassi omaduse. Näiteks pärib laps oma vanemate iseloomujooned. Pärimisega saame taaskasutada olemasoleva klassi välju ja meetodeid. Seega hõlbustab pärimine korduvkasutatavust ja see on OOP-de oluline kontseptsioon.
Milles seisneb pärand Java?
Java Pärisosa on mehhanism, mille käigus üks klass omandab teise klassi omaduse. sisse Java, kui kahe klassi vahel on suhe „Is-A”, kasutame pärimist. Ülemklassi nimetatakse superklassiks ja päritud klassi alamklassiks. Märksõna extends
alamklass kasutab seda superklassi tunnuste pärimiseks. Pärimine on oluline, kuna see toob kaasa koodi korduvkasutatavuse.
Java Pärimise süntaks:
class subClass extends superClass { //methods and fields }
Pärimise tüübid sisse Java
Siin on erinevad pärimise tüübid Java:
- Ühekordne pärand
- Mitmekordne pärand
- Mitmetasandiline pärand
- Hierarhiline pärand
- Hübriidne pärand
1. Üksikpärimine:
Single Heritance puhul laiendab üks klass teist klassi (ainult üks klass).
Ülaltoodud diagrammil laiendab klass B ainult klassi A. Klass A on superklass ja klass B on alamklass.
2. Mitmekordne pärimine:
Mitmikpärimine on üks pärandist Java tüübid, kus üks klass hõlmab rohkem kui ühte klassi. Java ei toeta mitmikpärimist.
Ülaltoodud diagrammi kohaselt laiendab C-klass nii A- kui ka B-klassi.
3. Mitmetasandiline pärimine:
Mitmetasandilise pärimise korral saab üks klass pärida tuletatud klassist. Seega saab tuletatud klassist uue klassi baasklass.
Nagu on näidatud diagrammil, klass C on B alamklass ja B on alamklassi A klass.
4. Hierarhiline pärand:
Hierarhilises pärimises pärivad ühe klassi paljud alamklassid.
Nagu ülaltoodud näites, pärivad B-, C- ja D-klassid sama klassi A.
5. Hübriidne pärand:
Hübriidne pärand on üks pärimise tüüpidest Java mis on ühe- ja mitmekordse pärimise kombinatsioon.
Nagu ülaltoodud näites, päritakse kõik A-klassi avalikud ja kaitstud liikmed D-klassi, esiteks klassi B ja teiseks klassi C kaudu.
Märge: Java ei toeta hübriid/mitmekordset pärimist
Pärand sisse Java Näide
Siin on näide pärimise kohta Java:
class Doctor { void Doctor_Details() { System.out.println("Doctor Details..."); } } class Surgeon extends Doctor { void Surgeon_Details() { System.out.println("Surgen Detail..."); } } public class Hospital { public static void main(String args[]) { Surgeon s = new Surgeon(); s.Doctor_Details(); s.Surgeon_Details(); } }
Super märksõna
Supermärksõna sarnaneb märksõnaga „sellele”. Märksõna super saab kasutada mis tahes vanemklassi andmeliikmele või meetoditele juurdepääsuks. Super märksõna saab kasutada aadressil muutuja, meetod ja konstruktori tase.
süntaksit:
super.<method-name>();
Kontrollige ka: - see märksõna sisse Java: Mis on ja kuidas seda näitega kasutada
Õppige pärimist OOP-is näite abil
Mõelge samale pangarakendusele eelmine näide.
Me peaksime avama kahte erinevat tüüpi kontot, ühe salvestamiseks ja teise kontrollimiseks (tuntud ka kui jooksev).
Võrdleme ja uurime, kuidas läheneda kodeerimisele a-st struktureeritud ja objektorienteeritud programmeerimise perspektiiv.
Struktuurne lähenemine: Struktureeritud programmeerimises loome kaks funktsiooni –
- Üks tagasi tõmbuda
- Ja teine sissemaksete jaoks.
Kuna nende funktsioonide töö jääb kontodel samaks.
OOP lähenemine: Kui kasutate OOP-d programmeerimise lähenemine. Loome kaks klassi.
- Igal neist on sisse- ja väljamaksefunktsioonid.
- See tekitab üleliigset lisatööd.
Tarkvara muutmise taotlus
Nüüd on muudatus nõuete spetsifikatsioonis millegi jaoks, mis on tarkvaratööstuses nii tavaline. Peate lisama arvelduskrediidi funktsiooniga privilegeeritud pangakonto. Taustaks on arvelduskrediit, mille abil saate välja võtta summa, mis on suurem kui teie konto saldo.
Struktuurne lähenemine: Kasutades funktsionaalset lähenemist, pean muutma oma tagasivõtmisfunktsiooni, mis on juba testitud ja loodud. Ja lisage alltoodud meetod, mis hoolitseb uute nõuete eest.
OOP lähenemine: Kasutades OOP-i lähenemisviisi, peate lihtsalt kirjutama uue klassi, millel on unikaalne tagasivõtmise funktsiooni rakendamine. Me ei puudutanud kunagi testitud koodiosa.
Veel üks muutmistaotlus
Mis siis, kui nõue muutub veelgi? Meeldib lisada krediitkaardikonto oma ainulaadse sissemaksenõudega.
Struktuurne lähenemine: Struktuurset lähenemist kasutades tuleb testitud deposiidikoodi uuesti muuta.
OOP lähenemine: Kuid objektorienteeritud lähenemisviisi kasutades loote lihtsalt uue klassi, millel on unikaalne sissemaksemeetodi rakendamine (alloleval pildil punaselt esile tõstetud). Ehkki struktuurne programmeerimine tundub esialgu lihtne lähenemisviis, võidab OOP pikas perspektiivis.
Pärimise eelised OOP-ides
Kuid võib väita, et kõigis klassides on teil korduvad kooditükid.
Sellest ülesaamiseks loote emaklassi, ütlete "konto" ja rakendate sama sisse- ja väljamakse funktsiooni. Ja muuta lasteklassid päritud "konto" klassiks. Et neil oleks juurdepääs kontoklassis väljamakse- ja sissemaksefunktsioonidele. Funktsioone ei pea eraldi rakendama. See on Pärand Javas. .