Rozdiel medzi dedičnosťou a rozhraním v jazyku Java

Kľúčový rozdiel - dedičnosť vs Rozhranie v jazyku Java
 

Java je programovací jazyk vyvinutý spoločnosťou Sun Microsystems. Java sa dá použiť na vývoj rôznych aplikácií. Je to jazyk viacerých paradigiem, ktorý podporuje objektovo orientované, štruktúrované atď. Hlavnou výhodou Java je, že podporuje objektovo orientované programovanie (OOP). Programátor môže vytvárať triedy a objekty. V OOP sú štyri piliere. Sú to dedičnosť, polymorfizmus, abstrakcia a enkapsulácia. Dedičnosť a rozhrania súvisia s OOP. kľúčový rozdiel medzi dedičstvom a rozhraním je to dedičnosť je odvodenie nových tried z existujúcich tried a rozhranie je implementácia abstraktných tried a viacnásobného dedičstva.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je dedičstvo v Jave
3. Čo je rozhranie v jazyku Java
4. Podobnosti medzi dedičnosťou a rozhraním v jazyku Java
5. Porovnanie vedľa seba - dedičnosť verzus rozhranie v jazyku Java v tabuľkovej forme
6. Zhrnutie

Čo je dedičstvo v Jave?

Dedičnosť môže dosiahnuť použiteľnosť kódu. Dedičstvo pomáha znovu použiť atribúty a metódy existujúcej triedy. Mechanizmus odvodenia novej triedy pomocou starej triedy sa nazýva dedičstvo. Stará trieda je známa ako rodičovská trieda alebo super trieda. Odvodená trieda sa nazýva podradená trieda alebo podtrieda.

Syntax Java dedičstva je nasledovná.

class subclass_name rozširuje superclass_name

variabilné vyhlásenie;

vyhlásenie o metóde;

Pojem dedičnosť možno vysvetliť pomocou nasledujúceho príkladu. Predpokladajme, že existuje trieda nazvaná A nasledovne.

verejná trieda A

verejná neplatná suma ()

System.out.println ( "Sum");

Ak chceme pridať novú metódu bez zmeny existujúcej triedy, môžeme to urobiť nasledujúcim spôsobom.

verejná trieda B

verejná neplatná sub ()

System.out.println ( "Sub");

Programátor môže použiť dedičstvo na použitie súčtu triedy A ().

verejná trieda B rozširuje triedu A

verejná neplatná sub ()

System.out.println ( "Sub");

V hlavnej funkcii je možné pomocou dedičnosti vytvoriť objekt B a volať sub (), ktorý patrí do triedy B a sum (), ktorý patrí do triedy A.

public static void main (String [] args)

B obj = nový B ();

obj.sub ();

obj.sum ();

Existujú rôzne typy dedičstva. Sú to jedno dedičstvo, viacnásobné dedičstvo, viacúrovňové dedičstvo a hierarchické dedičstvo. v jediné dedičstvo, existuje jedna základná trieda a jedna odvodená trieda. v viacúrovňové dedičstvo, existujú tri triedy, a to základná trieda, stredná trieda a odvodená trieda. Stredná trieda dedí od základnej triedy a odvodená trieda dedí od strednej triedy. v hierarchické dedičstvo, existuje jedna základná trieda a veľa odvodených tried. Existuje špeciálny typ známy ako Hybridné dedičstvo. Je to kombinácia dvoch alebo viacerých druhov dedičstva.

Obrázok 01: Dedičnosť

v Viacnásobné dedičstvo existuje veľa základných tried a jedna odvodená trieda. Predpokladajme, že triedy A a B sú základné triedy. Trieda C je odvodená trieda. Ak obidve triedy A a B majú rovnakú metódu a programátor túto metódu volá z odvodenej triedy, spôsobí to nejednoznačnosť. Zdedenie dvoch tried môže spôsobiť chybu kompilácie. Preto v Jave nie je podporované viacnásobné dedičstvo. Na prekonanie tohto problému možno použiť rozhranie.

Čo je rozhranie v jazyku Java?

Abstrakcia je proces skrývania podrobností o implementácii a zobrazovania iba funkcií pre používateľa. Abstrakciu je možné dosiahnuť pomocou abstraktných tried alebo rozhraní. Abstraktná metóda je metóda bez implementácie. Trieda s najmenej jednou abstraktnou metódou je abstraktná trieda. Príklad abstraktnej triedy je nasledujúci.

abstraktná trieda A

abstraktná neplatná suma ();

Predpokladajme, že existujú dve abstraktné triedy ako A a B. Na implementáciu abstraktných metód A a B sa vytvorí nová trieda C. Potom by trieda C mala rozšíriť tak A, ako aj B. Ale v Java nie je podporované viacnásobné dedičstvo. Preto by mali používať rozhrania. Rozhrania sa môžu použiť na deklarovanie metód, ale nie je možné definovať metódy. Nie je možné vytvoriť objekt pomocou rozhraní. Trieda C by mala implementovať všetky metódy v rozhraní A a B.

rozhranie A

neplatná suma ();

rozhranie B

neplatná sub ();

trieda C implementuje A, B

verejná neplatná suma ()

System.out.println ( "Sčítanie");

verejná neplatná sub ()

System.out.println ( "odčítanie");

Teraz je možné v hlavnom programe vytvoriť objekt C a zavolať obidve metódy.

public static void main (String [] args)

C obj = nový C ();

obj.sum ();

obj.sub ();

Rozhrania teda môžu použiť na implementáciu viacnásobného dedičstva.

Ďalším použitím rozhraní je to, že poskytuje bezpečnosť. Pozrite si nasledujúci kód.

rozhranie A

neplatná suma ();

trieda B implementuje A

verejná neplatná suma ()

System.out.println ( "Sčítanie");

násobok verejnej neplatnosti ()

System.out.println ( "násobenie");

Pri vytváraní objektu B je možné volať obidve metódy sum () a násobiť (). Ak chce programátor obmedziť používanie funkcie násobenia (), je to možné takto.

public static void main (String [] args)

A obj = nový B ();

obj.sum ();

A obj = nový B (); vytvorí objekt. Je typu A a pamäť je pridelená ako B. Je možné volať súčet (), ale nemôže sa vynásobiť (). Toto obmedzenie sa vykonáva pomocou rozhraní.

Aké sú podobnosti medzi dedičnosťou a rozhraním v Jave?

  • Oba koncepty súvisia s objektovo orientovaným programovaním
  • Oba predstavujú vzťah IS-A.

Aký je rozdiel medzi dedičnosťou a rozhraním v Jave?

Dedičnosť verzus rozhranie v Jave

Dedičnosť je koncept OOP na odvodenie nových tried z existujúcich tried. Rozhranie je mechanizmus OOP na implementáciu abstrakcie a viacnásobného dedičstva.
používanie
Dedičnosť poskytuje opakované použitie kódu. Rozhrania poskytujú abstrakciu a viacnásobné dedičstvo.

Zhrnutie - dedičstvo vs Rozhranie v jazyku Java

Java je multi-paradigmatický programovací jazyk, ktorý podporuje objektovo orientované programovanie. Dedičnosť a rozhrania súvisia s objektovo orientovaným programovaním. Rozdiel medzi dedičstvom a rozhraním je v tom, že dedičstvo je odvodenie nových tried z existujúcich tried a rozhraní je implementácia abstraktných tried a viacnásobného dedičstva..

Stiahnite si verziu Java dedičstva verzus PDF v jazyku Java

Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ju na účely offline podľa citácie. Stiahnite si verziu PDF tu Rozdiel medzi dedičnosťou a rozhraním v jazyku Java

referencie:

1.Point, Návody. „Dedičstvo Java.“, Tutorials Point, 31. októbra 2017. K dispozícii tu 
2.Point, Návody. „Rozhrania Java.“ , Tutorials Point, 31. októbra 2017. K dispozícii tu 

S láskavým dovolením:

1.'CPT-OOP-dedičnosť-bicykle 'Pluke - Vlastná práca, (Public Domain), na Commons Wikimedia