Mis on pärimine?
Pärimine on mehhanism, mille abil üks klass omandab teise klassi vara. Näiteks pärib laps oma vanemate tunnused. Pärimise korral saame taaskasutada olemasoleva klassi väljad ja meetodid. Seega hõlbustab pärimine korduvkasutatavust ja on oluline OOP-ide mõiste.
Selles õpetuses saate teada
- Pärandi tüübid
- Pärand Java keeles
- Java pärimise näide
- Super märksõna
- Õppige näitel OOP-s pärimist
Pärandi tüübid
Java-s on mitmesuguseid pärimisi:
Ühekordne pärand:
Ühekordse pärandi korral 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.
Mitu pärandit:
Mitmekordse pärimise korral on üks klass pikem kui üks klass. Java ei toeta mitut pärimist.

Vastavalt ülaltoodud skeemile laiendab C-klass mõlemat klassi A ja B.
Mitmetasandiline pärand:
Mitmetasandilise pärandi korral saab üks klass pärida tuletatud klassist. Seega saab tuletatud klassist uue klassi põhiklass.

Nagu diagrammil on näidatud, on klass C B-alamklass ja B-klass A-alaklass.
Hierarhiline pärand:
Hierarhilises pärandis pärib ühe klassi paljud alamklassid.

Nagu ülaltoodud näites, pärivad klassid B, C ja D sama A-klassi.
Hübriidne pärand:
Hübriidne pärand on kombinatsioon ühest ja mitmest pärandist.

Nagu ülaltoodud näites, päritakse kogu A-klassi avalikkus ja kaitstud liikmed D-klassi, esiteks B-klassi ja teiseks C-klassi kaudu.
Märkus. Java ei toeta hübriid- / mitmekordset pärimist
Pärand Java-s
JAVA PÄRAND on mehhanism, milles üks klass omandab teise klassi vara. Kui Java-klassis eksisteerib kahe klassi vahel "Is-A" suhe, kasutame pärandit. Vanemklassi nimetatakse superklassiks ja päritud klassi alamklassiks. Märksõna
extends
kasutatakse alamklassi superklassi tunnuste pärimiseks.
Pärimine on oluline, kuna see viib koodi taaskasutamiseni.
Java pärilikkuse süntaks:
class subClass extends superClass{//methods and fields}
Java pärimise näide
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
Super märksõna sarnaneb märksõnaga "see".
Märksõnaga super saab pääseda juurde mis tahes vanemklassi andmeliikmele või meetodile.
Super märksõna saab kasutada muutuja, meetodi ja konstruktori tasemel.
Süntaks:
super.();
Õppige näitel OOP-s pärimist
Vaatleme sama pangarakendust eelmises näites.
Peaksime avama kaks erinevat kontotüüpi, ühe salvestamiseks ja teise kontrollimiseks (tuntud ka kui praegune).
Võrdleme ja uurime, kuidas saaksime kodeerimisele läheneda struktureeritud ja objektorienteeritud programmeerimise perspektiivist. Struktuurne lähenemine : struktureeritud programmeerimisel loome kaks funktsiooni -
- Üks taganemiseks
- Ja teine hoiustamiseks.
Kuna nende funktsioonide töö jääb kogu kontol samaks.
OOP-i lähenemine : OOP-de programmeerimismeetodi kasutamisel. Loome kaks klassi.
- Mõlemal on sisse- ja väljamakse funktsioonid.
- See on üleliigne lisatöö.
Tarkvara muutmise taotlus
Nüüd on tarkvara tööstuses nii levinud asja nõuete spetsifikatsioonis muudetud. Peate arvelduskrediidiga lisama funktsionaalsusega privilegeeritud pangakonto. Taustaks on arvelduskrediit vahend, mille abil saate oma kontol olevast jäägist suurema summa välja võtta.
Struktuurne lähenemine: funktsionaalse lähenemise abil pean muutma oma väljatõmbefunktsiooni, mis on juba testitud ja lähtejoones. Ja lisage selline meetod nagu allpool hoolitseb uute nõuete eest.
OOP-i lähenemisviis: OOP-i lähenemisviisi kasutades peate lihtsalt kirjutama uue klassi, millel on unikaalne eemaldamisfunktsiooni rakendamine. Testitud koodijuppi me kunagi ei puutunud.
Teine muutmistaotlus
Mis siis, kui nõue muutub veelgi? Meeldib lisada krediitkaardikonto, millel on oma ainulaadne hoiuste nõue .
Struktuurne lähenemine: struktuurse lähenemisviisi abil peate uuesti kontrollitud sissemaksekoodi muutma.
OOP-i lähenemisviis : Kuid kasutades objektorienteeritud lähenemist, loote lihtsalt uue klassi, millel on ainulaadne sissemaksemeetodi rakendamine (alloleval pildil punane esile tõstetud).
Nii et kuigi struktuurne programmeerimine tundub esialgu lihtne lähenemine, võidavad OOP-d pikas perspektiivis.
Pärimise eelis OOP-des
Kuid võib väita, et kõigis klassides on teil korduv koodijupp.
Selle ületamiseks loote vanemateklassi, öelge "konto" ja rakendate sama sissemakse ja väljamakse funktsiooni. Ja tehke lasteklassidele päritud "konto" klass. Nii et neil oleks juurdepääs kontoklassis väljamakse- ja sissemaksefunktsioonidele.
Funktsioonide rakendamine eraldi ei ole nõutav. See on pärimine jaavas. .