Perintö Java OOP: issa esimerkin avulla

Mikä on perintö?

Perintö on mekanismi, jossa yksi luokka hankkii toisen luokan omaisuuden. Esimerkiksi lapsi perii vanhempiensa piirteet. Perimällä voimme käyttää uudelleen olemassa olevan luokan kenttiä ja menetelmiä. Näin ollen perintö helpottaa uudelleenkäytettävyyttä ja on tärkeä käsite OOP: ista.

Tässä opetusohjelmassa opit-

  • Perintötyypit
  • Perintö Java-kielellä
  • Esimerkki Java-perinnöstä
  • Super Avainsana
  • Opi perintö OOP: ista esimerkin avulla

Perintötyypit

Java-ohjelmistossa on erilaisia ​​perintötyyppejä:

Yksi perintö:

Yhdessä perinnössä yksi luokka laajentaa toista luokkaa (vain yksi luokka).

Yksi perintö

Yllä olevassa kaaviossa luokka B ulottuu vain luokkaan A. Luokka A on superluokka ja luokka B on alaluokka.

Useita perintöjä:

Moniperinnössä yksi luokka, joka ulottuu useampaan kuin yhteen luokkaan. Java ei tue useita perintöjä.

Moninkertainen perintö

Kuten yllä olevassa kaaviossa, luokka C laajentaa molempia luokkia A ja B.

Monitasoinen perintö:

Monitasoisessa perinnössä yksi luokka voi periä johdetusta luokasta. Näin ollen johdetusta luokasta tulee uuden luokan perusluokka.

Monitasoinen perintö

Kuten kaaviossa on esitetty, luokka C on alaluokka B ja B on alaluokka A.

Hierarkkinen perintö:

Hierarkkisessa perinnössä yksi luokka periytyy monista alaluokista.

Hierarkkinen perintö

Yllä olevan esimerkin mukaisesti luokat B, C ja D perivät saman luokan A.

Hybridi perintö:

Hybridi-perintö on yhdistelmä yhden- ja moniperintöä.

Hybridi-perintö

Yllä olevan esimerkin mukaisesti kaikki yleisöt ja suojatut A-luokan jäsenet peritään D-luokkaan ensin B-luokan ja toiseksi C-luokan kautta.

Huomaa: Java ei tue hybridi- / moniperinnöllisyyttä

Perintö Java

JAVA-PERINTÖ on mekanismi, jossa yksi luokka hankkii toisen luokan omaisuuden. Kun Java-tilassa kahden luokan välillä on "Is-A" -suhde, käytämme perintöä. Vanhempaluokkaa kutsutaan superluokaksi ja perittyä luokkaa alaluokkaksi. Avainsana

extends käytetään alaluokassa perimään superluokan ominaisuudet.

Perintö on tärkeää, koska se johtaa koodin uudelleenkäyttöön.

Java-perintösyntaksi:

class subClass extends superClass{//methods and fields}

Esimerkki Java-perinnöstä

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 Avainsana

Super-avainsana on samanlainen kuin "tämä" -avainsana.

Avainsanalla super voidaan käyttää mitä tahansa vanhemman luokan jäsentä tai menetelmää.

Super-avainsanaa voidaan käyttää muuttuja-, menetelmä- ja konstruktoritasolla.

Syntaksi:

super.();

Opi perintö OOP: ista esimerkin avulla

Harkitse samaa pankkisovellusta edellisessä esimerkissä.

Meidän on tarkoitus avata kaksi erilaista tilityyppiä, yksi tallennusta varten ja toinen tarkistusta varten (tunnetaan myös nykyisenä).

Verrataan ja tutkitaan, miten voimme lähestyä koodausta strukturoidusta ja olio-ohjelmoinnin näkökulmasta. Rakenteellinen lähestymistapa : Rakenteellisessa ohjelmoinnissa luomme kaksi toimintoa -

  1. Yksi vetäytyä
  2. Ja toinen talletustoimintaa varten.

Koska näiden toimintojen toiminta pysyy samana kaikilla tileillä.

OOP: n lähestymistapa : OOP: n ohjelmointitapaa käytettäessä. Luomme kaksi luokkaa.

  • Jokaisella on talletus- ja nostotoiminnot.
  • Tämä on tarpeeton ylimääräinen työ.

Muutospyyntö ohjelmistossa

Nyt vaatimusmäärittelyssä on tapahtunut muutos sellaiselle, joka on niin yleistä ohjelmistoteollisuudessa. Sinun on tarkoitus lisätä etuoikeutettu pankkitili Overdraf-järjestelyyn. Taustalimiitti on järjestely, jossa voit nostaa summan, joka ylittää tililläsi olevan saldon.

Rakenteellinen lähestymistapa: Funktionaalista lähestymistapaa käytettäessä minun on muutettava peruutustoimintoa, joka on jo testattu ja perustettu. Ja lisää menetelmä, kuten alla, huolehtii uusista vaatimuksista.

OOP: n lähestymistapa: OOP: n lähestymistapaa käyttäen sinun tarvitsee vain kirjoittaa uusi luokka, jossa on ainutlaatuinen peruutustoiminnon toteutus. Emme koskaan koskettaneet testattua koodia.

Toinen muutospyyntö

Entä jos vaatimus muuttuu edelleen? Haluat lisätä luottokorttitilin, jolla on oma ainutlaatuinen vaatimuksensa talletuksista .

Rakenteellinen lähestymistapa: Rakenteellista lähestymistapaa käyttämällä sinun on vaihdettava testattu talletuskoodi uudelleen.

OOP: n lähestymistapa : Mutta käyttämällä olio-lähestymistapaa, luot vain uuden luokan, jolla on ainutlaatuinen talletusmenetelmän toteutus (korostettu punaisella alla olevassa kuvassa).

Joten vaikka rakenteellinen ohjelmointi vaikuttaa aluksi helpolta lähestymistavalta, OOP: n voitot pitkällä aikavälillä.

Perimisen etu OOP: issa

Mutta voidaan väittää, että kaikissa luokissa sinulla on toistuva koodinpala.

Voit voittaa tämän luomalla vanhempaluokan, sanomalla "tili" ja toteuttamalla saman talletus- ja nostotoiminnon. Ja tee lapsiluokista peritty "tilin" luokka. Jotta heillä olisi pääsy nosto- ja talletustoimintoihin tililuokassa.

Toimintoja ei tarvitse toteuttaa erikseen. Tämä on perintö java. .

Mielenkiintoisia artikkeleita...