Kas ir mantojums?
Mantošana ir mehānisms, kurā viena klase iegūst citas šķiras īpašumu. Piemēram, bērns pārņem vecāku iezīmes. Ar mantojumu mēs varam atkārtoti izmantot esošās klases laukus un metodes. Tādējādi mantošana veicina atkārtotu izmantošanu un ir svarīgs OOP jēdziens.
Šajā apmācībā jūs uzzināsiet
- Mantojuma veidi
- Mantojums Java valodā
- Java mantojuma piemērs
- Super atslēgvārds
- Uzziniet mantojumu OOP ar piemēru
Mantojuma veidi
Java valodā ir dažādi mantojuma veidi:
Vienreizējs mantojums:
Vienreizējā mantojumā viena klase paplašina citu klasi (tikai viena klase).

Iepriekš redzamajā diagrammā B klase attiecas tikai uz A klasi. A klase ir super klase un B klase ir apakšklase.
Vairāki mantojumi:
Vairāku mantojumu gadījumā viena klase paplašina vairāk nekā vienu klasi. Java neatbalsta vairākkārtēju mantošanu.

Saskaņā ar iepriekšējo diagrammu C klase pagarina gan A, gan B klasi.
Daudzlīmeņu mantojums:
Daudzlīmeņu mantojumā viena klase var mantot no atvasinātas klases. Tādējādi atvasinātā klase kļūst par jaunās klases pamatklasi.

Kā parādīts diagrammā, C klase ir B apakšklase, un B ir A apakšklase.
Hierarhiskā mantošana:
Hierarhiskajā mantojumā vienu klasi pārņem daudzas apakšklases.

Kā norādīts iepriekš, B, C un D klase pārmanto to pašu A klasi.
Hibrīda mantojums:
Hibrīdā mantošana ir viena un vairāku mantojumu kombinācija.

Saskaņā ar iepriekš minēto piemēru visi sabiedrības locekļi un aizsargātie A klases locekļi tiek mantoti D klasē, pirmkārt, caur B klasi un, otrkārt, caur C klasi.
Piezīme: Java neatbalsta hibrīdu / vairāku mantojumu
Mantojums Java
JAVA mantojums ir mehānisms, kurā viena klase iegūst citas klases īpašumu. Ja Java starp divām klasēm pastāv "Is-A" attiecības, mēs izmantojam mantojumu. Vecāku klase tiek saukta par superklasi, bet mantoto klasi - par apakšklasi. Atslēgvārds
extends
lieto apakšklase superklases īpašību pārmantošanai.
Mantošana ir svarīga, jo tā noved pie koda atkārtotas izmantošanas.
Java mantojuma sintakse:
class subClass extends superClass{//methods and fields}
Java mantojuma piemērs
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 atslēgvārds
Galvenais atslēgvārds ir līdzīgs atslēgvārdam “šis”.
Atslēgvārdu super var izmantot, lai piekļūtu jebkuram vecāku klases datu dalībniekam vai metodēm.
Super atslēgvārdu var izmantot mainīgā, metodes un konstruktora līmenī.
Sintakse:
super.();
Uzziniet mantojumu OOP ar piemēru
Apsveriet to pašu bankas lietojumu no iepriekšējā piemēra.
Mums ir paredzēts atvērt divus dažādus kontu veidus, vienu krājumam un otru pārbaudei (pazīstams arī kā pašreizējais).
Salīdzināsim un izpētīsim, kā mēs varam pieiet kodēšanai no strukturētas un objektorientētas programmēšanas perspektīvas. Strukturālā pieeja : Strukturētā programmēšanā mēs izveidosim divas funkcijas -
- Viens, lai atsauktu
- Un otrs depozīta darbībai.
Tā kā šo funkciju darbība visos kontos paliek vienāda.
OOP pieeja : izmantojot OOP programmēšanas pieeju. Mēs izveidotu divas klases.
- Katram no tiem ir ieviestas depozīta un izņemšanas funkcijas.
- Tas būs lieks papildu darbs.
Izmaiņu pieprasījums programmatūrā
Tagad ir mainītas prasību specifikācijas kaut kam, kas programmatūras nozarē ir tik izplatīts. Jums vajadzētu pievienot funkcionalitātes priviliģētu bankas kontu ar Overdrafta mehānismu. Attiecībā uz iepriekšēju pārtēriņu pārtēriņš ir iespēja, kurā varat izņemt summu, kas pārsniedz jūsu kontā pieejamo atlikumu.
Strukturālā pieeja: izmantojot funkcionālo pieeju, man ir jāpārveido sava atsaukšanas funkcija, kas jau ir pārbaudīta un pamatota. Un pievienojiet metodi, piemēram, zemāk, kas rūpēsies par jaunām prasībām.
OOP pieeja: Izmantojot OOP pieeju, jums vienkārši jāuzraksta jauna klase ar unikālu atsaukšanas funkcijas ieviešanu. Mēs nekad nepieskārāmies pārbaudītajam koda fragmentam.
Vēl viens izmaiņu pieprasījums
Ko darīt, ja prasība mainās tālāk? Vēlētos pievienot kredītkartes kontu ar savu unikālo depozītu prasību .
Strukturālā pieeja: izmantojot strukturālo pieeju, jums vēlreiz jāmaina pārbaudītais depozīta koda fragments.
OOP pieeja : Bet, izmantojot objektorientētu pieeju, jūs vienkārši izveidosiet jaunu klasi ar unikālu depozīta metodes ieviešanu (zemāk redzamajā attēlā izcelts sarkans).
Lai gan sākotnēji strukturālā plānošana šķiet viegla pieeja, OOP uzvar ilgtermiņā.
Mantojuma priekšrocība OOP
Bet var apgalvot, ka visās klasēs jums ir atkārtoti koda fragmenti.
Lai to pārvarētu, izveidojiet vecāku klasi, sakiet “konts” un īstenojiet to pašu iemaksas un izņemšanas funkciju. Un padarīt bērnu klases pārmantotu "kontu" klasi. Lai viņiem būtu piekļuve izņemšanas un iemaksas funkcijām kontu klasē.
Funkcijas nav jāievieš individuāli. Tas ir mantojums java. .