Mantojums Java OOP ar piemēru

Kas ir mantojums?

Mantojums ir mehānisms, kurā viena klase iegūst citas klases īpašumu. Piemēram, bērns pārmanto savu vecāku iezīmes. Ar mantojumu mēs varam atkārtoti izmantot esošās klases laukus un metodes. Tādējādi mantošana atvieglo atkārtotu izmantošanu un ir svarīgs OOP jēdziens.

Šajā apmācībā jūs uzzināsit-

Mantojuma veidi

Java ir dažādi mantošanas veidi:

Viens mantojums:

Vienotā mantojumā viena klase paplašina citu klasi (tikai viena klase).

Viens mantojums



Iepriekš redzamajā diagrammā B klase attiecas tikai uz A klasi. A klase ir superklase, bet B klase ir apakšklase.

Vairāki mantojumi:

Vairāku mantojumu gadījumā viena klase, kas paplašina vairākas klases. Java neatbalsta vairāku mantojumu.

Vairāki mantojumi

kā labot disku operētājsistēmā mac

Saskaņā ar iepriekš redzamo diagrammu C klase paplašina 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 bāzes klasi.

Daudzlīmeņu mantojums



Kā parādīts diagrammā, C klase ir B apakšklase, bet B - A klases apakšklase.

Hierarhiskā mantošana:

Hierarhiskajā mantojumā vienu klasi pārmanto daudzas apakšklases.

Hierarhiskā mantošana

kas no tālāk minētā nav patiess attiecībā uz makro?

Kā minēts iepriekš, B, C un D klase pārmanto vienu un to pašu A klasi.

Hibrīda mantojums:

Hibrīdā mantošana ir viena un vairāku mantojumu kombinācija.

Hibrīda mantojums

Saskaņā ar iepriekš minēto piemēru visi A klases sabiedriskie un aizsargātie locekļi tiek mantoti D klasē, pirmkārt, izmantojot B klasi un, otrkārt, izmantojot C klasi.

Piezīme: Java neatbalsta hibrīdu/vairāku mantojumu

Mantojums Java

JAVA iedzimtība ir mehānisms, kurā viena klase iegūst citas klases īpašumu. Java, kad starp divām klasēm pastāv “Is-A” sakari, mēs izmantojam Mantojumu. Vecāku klasi sauc par super klasi, bet mantoto klasi - par apakšklasi. Atslēgvārds | _+_ | apakšklase izmanto, lai pārmantotu superklases iezīmes.

Mantojums ir svarīgs, jo tas noved pie koda atkārtotas izmantošanas.

Java mantojuma sintakse: extends

Java mantojuma piemērs

 class subClass extends superClass { //methods and fields } 

Super atslēgvārds

Super atslēgvārds ir līdzīgs šim “atslēgvārdam”.

Atslēgvārdu super var izmantot, lai piekļūtu jebkuram vecāku klases datu loceklim vai metodēm.

Super atslēgvārdu var izmantot mainīgo, metožu un konstruktoru līmenī.

Sintakse:

 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(); } } 

Uzziniet mantojumu OOP ar piemēru

Apsveriet to pašu bankas lietojumprogrammu no iepriekšējais piemērs.

Mums vajadzētu atvērt divus dažādus kontu veidus: vienu, lai saglabātu un otru, lai pārbaudītu (pazīstams arī kā pašreizējais).

Salīdzināsim un izpētīsim, kā mēs varam pieiet kodēšanai no a strukturēta un uz objektu orientēta programmēšanas perspektīva. Strukturālā pieeja : Strukturētā programmēšanā mēs izveidosim divas funkcijas -

  1. Viens atsaukt
  2. Un otru par depozīta darbību.

Tā kā šo funkciju darbība kontos paliek nemainīga.

OOP pieeja : Izmantojot OOP programmēšanas pieeju. Mēs izveidosim divas klases.

  • Katrai no tām ir depozīta un izņemšanas funkcijas.
  • Tas lieks papildu darbu.

Izmaiņu pieprasījums programmatūrā

Tagad tiek mainītas prasību specifikācijas attiecībā uz kaut ko tādu, kas programmatūras nozarē ir tik izplatīts. Jums vajadzētu pievienot funkcionalitātes priviliģētu bankas kontu ar overdrafta iespēju. Piemēram, overdrafts ir iespēja, kurā varat izņemt summu, kas pārsniedz jūsu konta atlikumu.

Strukturālā pieeja: Izmantojot funkcionālu pieeju, man ir jāmaina sava izņemšanas funkcija, kas jau ir pārbaudīta un pamatota. Un pievienojiet tālāk norādīto metodi, lai rūpētos par jaunām prasībām.

OOP pieeja: Izmantojot OOP pieeju, jums vienkārši jāraksta jauna klase ar unikālu izņemšanas funkcijas ieviešanu. Mēs nekad nepieskārāmies pārbaudītajam koda gabalam.

Vēl viens izmaiņu pieprasījums

Ko darīt, ja prasības vēl mainās? Patīk pievienot kredītkartes kontu ar savu unikālo depozīta prasību .

Strukturālā pieeja: Izmantojot strukturālu pieeju, jums vēlreiz jāmaina pārbaudītais depozīta kods.

OOP pieeja : Bet, izmantojot objektorientētu pieeju, jūs vienkārši izveidosit jaunu klasi ar savu unikālo depozīta metodes ieviešanu (zemāk redzamajā attēlā iezīmēts sarkanā krāsā).

Tātad, lai gan strukturālā plānošana sākotnēji šķiet vienkārša pieeja, OOP uzvar ilgtermiņā.

Mantojuma priekšrocība OOP

Bet var apgalvot, ka visās klasēs jums ir atkārtoti koda gabali.

Lai to novērstu, jūs izveidojat vecāku klasi, sakāt “konts” un īstenojat to pašu depozīta un izņemšanas funkciju. Un padarīt bērnu klases par mantotu “konta” klasi. Lai viņiem būtu pieejamas konta klases izņemšanas un depozīta funkcijas.

Funkcijas nav jāīsteno individuāli. Tas ir Mantojums java. .