Paveldėjimas Java OOP su pavyzdžiu

Turinys:

Anonim

Kas yra paveldėjimas?

Paveldėjimas yra mechanizmas, kurio metu viena klasė įgyja kitos klasės nuosavybę. Pavyzdžiui, vaikas paveldi savo tėvų bruožus. Turėdami paveldėjimą galime pakartotinai naudoti esamos klasės laukus ir metodus. Taigi paveldėjimas palengvina pakartotinį naudojimą ir yra svarbi OOP sąvoka.

Šioje pamokoje sužinosite

  • Paveldėjimo rūšys
  • Paveldėjimas „Java“
  • „Java“ paveldėjimo pavyzdys
  • Super raktinis žodis
  • Sužinokite paveldėjimą OOP pavyzdyje

Paveldėjimo rūšys

„Java“ yra įvairių paveldėjimo tipų:

Vienkartinis paveldėjimas:

Vieno paveldėjimo metu viena klasė pratęsia kitą klasę (tik viena klasė).

Vienkartinis paveldėjimas

Aukščiau pateiktoje diagramoje B klasė tęsiasi tik A klasei. A klasė yra super klasė, o B klasė yra subklasė.

Daugkartinis paveldėjimas:

Daugkartinio paveldėjimo atveju viena klasė tęsiasi daugiau nei viena klasė. „Java“ nepalaiko kelių paveldėjimų.

Daugkartinis paveldėjimas

Kaip nurodyta pirmiau pateiktoje diagramoje, C klasė pratęsia A ir B klases.

Daugiapakopis paveldėjimas:

Daugiapakopio paveldėjimo atveju viena klasė gali paveldėti iš išvestinės klasės. Taigi išvestinė klasė tampa pagrindine naujos klasės klase.

Daugiapakopis paveldėjimas

Kaip parodyta diagramoje, C klasė yra B poklasis, o B - A klasės poklasis.

Hierarchinis paveldėjimas:

Hierarchiniame paveldėjime vieną klasę paveldi daugelis pogrupių.

Hierarchinis paveldėjimas

Kaip nurodyta aukščiau, B, C ir D klasės paveldi tą pačią A klasę.

Hibridinis paveldėjimas:

Hibridinis paveldėjimas yra vieno ir kelių paveldėjimo derinys.

Hibridinis paveldėjimas

Pagal pirmiau pateiktą pavyzdį, visa visuomenė ir saugomi A klasės nariai yra paveldimi D klasėje, pirmiausia per B klasę ir, antra, per C klasę.

Pastaba: „ Java“ nepalaiko hibridinio / daugybinio paveldėjimo

Paveldėjimas „Java“

JAVA paveldėjimas yra mechanizmas, kurio metu viena klasė įgyja kitos klasės nuosavybę. Kai „Java“ yra „Is-A“ santykis tarp dviejų klasių, mes naudojame paveldėjimą. Tėvų klasė vadinama super klase, o paveldėta klasė - poklasiu. Raktinis žodis

extends klasė naudoja paveldėti super klasės ypatybes.

Paveldėjimas yra svarbus, nes tai lemia kodo pakartotinį naudojimą.

„Java“ paveldėjimo sintaksė:

class subClass extends superClass{//methods and fields}

„Java“ paveldėjimo pavyzdys

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 raktinis žodis

Puikus raktinis žodis yra panašus į „šis“ raktinis žodis.

Raktinis žodis super gali būti naudojamas norint pasiekti bet kurį pagrindinės klasės duomenų narį ar metodus.

Super raktinis žodis gali būti naudojamas kintamojo, metodo ir konstruktoriaus lygiu.

Sintaksė:

super.();

Sužinokite paveldėjimą OOP pavyzdyje

Apsvarstykite tą pačią bankininkystės programą iš ankstesnio pavyzdžio.

Mes turėtume atidaryti du skirtingus sąskaitų tipus, vieną taupymui, o kitą tikrinimui (dar vadinamą dabartine).

Palyginkime ir panagrinėkime, kaip galime naudotis kodavimu struktūrizuotu ir į objektą orientuotu programavimo požiūriu. Struktūrinis požiūris : struktūriniame programavime sukursime dvi funkcijas -

  1. Vienas pasitraukti
  2. O kitas - indėlių veiksmams.

Kadangi šios funkcijos visose sąskaitose išlieka vienodos.

OOP požiūris : naudojant OOP programavimo metodą. Mes sukurtume dvi klases.

  • Kiekvienas turi deponavimo ir atsiėmimo funkcijas.
  • Tai nereikalingas papildomas darbas.

Programinės įrangos pakeitimo užklausa

Dabar pasikeitė reikalavimų, susijusių su programinės įrangos pramone, įprasta specifikacija. Jūs turėtumėte pridėti privilegijuotą funkcinę banko sąskaitą su overdrafto galimybe. Kalbant apie foną, overdraftas yra priemonė, kuria galite atsiimti didesnę sumą, nei yra jūsų sąskaitos likutis.

Struktūrinis požiūris: naudodamas funkcinį metodą, turiu modifikuoti savo pasitraukimo funkciją, kuri jau yra išbandyta ir pagrįsta. Ir pridėkite metodą, kaip nurodyta toliau, pasirūpins naujais reikalavimais.

OOP požiūris: Naudodamiesi OOP požiūriu, jums tiesiog reikia parašyti naują klasę su unikaliu pašalinimo funkcijos įgyvendinimu. Niekada nelietėme išbandyto kodo.

Kitas pakeitimo prašymas

O jei reikalavimas dar pasikeis? Norėtųsi pridėti kredito kortelės sąskaitą su savo unikaliu indėlių reikalavimu .

Struktūrinis metodas: naudodami struktūrinį metodą turite dar kartą pakeisti patikrintą indėlio kodą.

OOP požiūris : Tačiau taikydami į objektą orientuotą metodą, jūs tiesiog sukursite naują klasę su unikaliu depozito metodo įgyvendinimu (žemiau esančiame paveikslėlyje paryškinta raudona spalva).

Taigi, nors iš pradžių atrodo, kad struktūrinis programavimas yra lengvas, ilgainiui OOP laimi.

Paveldėjimo pranašumas OOP

Bet galima teigti, kad visose klasėse turite pakartotinius kodo fragmentus.

Norėdami tai įveikti, sukursite tėvų klasę, sakykite „sąskaita“ ir įgyvendinsite tą pačią indėlio ir atsiėmimo funkciją. Padarykite vaikų klases paveldimomis „sąskaitos“ klasėmis. Kad jie turėtų prieigą prie sąskaitos klasės atsiėmimo ir įmokėjimo funkcijų.

Nereikalaujama, kad funkcijos būtų įgyvendinamos atskirai. Tai yra paveldėjimas java. .