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

Obsah:

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

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

Video: Rozdiel medzi dedičnosťou a rozhraním v jazyku Java
Video: Росс Рейнганс-Ю от C до Python 2024, December
Anonim

Kľúčový rozdiel – dedičnosť verzus rozhranie v jazyku Java

Java je programovací jazyk vyvinutý spoločnosťou Sun Microsystems. Java môže byť použitá na vývoj rôznych aplikácií. Je to multiparadigmový jazyk, 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 zapuzdrenie. Dedičnosť a rozhrania súvisia s OOP. Kľúčový rozdiel medzi dedičnosťou a rozhraním je v tom, že dedičnosť má odvodiť nové triedy z existujúcich tried a rozhranie má implementovať abstraktné triedy a viacnásobné dedičstvo.

Čo je dedičnosť v jazyku Java?

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

Syntax dedičnosti Java je nasledovná.

class subclass_name rozširuje superclass_name {

deklarácia premennej;

deklarácia metódy;

}

Koncept dedičnosti možno vysvetliť pomocou nasledujúceho príkladu. Predpokladajme, že existuje trieda s názvom A takto.

verejná trieda A{

public void sum(){

System.out.println(“Suma”);

}

}

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

verejná trieda B{

public void sub(){

System.out.println(“Sub”);

}

}

Programátor môže použiť dedičnosť na použitie triedy A sum().

verejná trieda B rozširuje triedu A{

public void sub(){

System.out.println(“Sub”);

}

}

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

public static void main(String args){

B obj=new B();

obj.sub();

obj.sum();

}

Existujú rôzne typy dedenia. Sú to jednoduché dedičstvo, viacnásobné dedičstvo, viacúrovňové dedičstvo a hierarchické dedičstvo. Pri jednoduchej dedičnosti existuje jedna základná trieda a jedna odvodená trieda. Pri viacúrovňovej dedičnosti 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 hierarchickej dedičnosti existuje jedna základná trieda a mnoho odvodených tried. Existuje špeciálny typ známy ako hybridná dedičnosť. Ide o kombináciu dvoch alebo viacerých typov dedičstva.

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

Obrázok 01: Dedičstvo

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

Čo je rozhranie v jazyku Java?

Abstrakcia je proces skrytia detailov implementácie a zobrazenie iba funkcií používateľovi. Abstrakciu možno dosiahnuť pomocou abstraktných tried alebo rozhraní. Abstraktná metóda je metóda bez implementácie. Trieda s aspoň jednou abstraktnou metódou je abstraktná trieda. Príklad abstraktnej triedy je nasledujúci.

abstraktná trieda A{

abstract void sum();

}

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ť A aj B., Ale viacnásobné dedenie nie je v Jave podporované. Preto by ste mali používať rozhrania. Na deklarovanie metód je možné použiť rozhrania, 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{

void sum();

}

rozhranie B{

void sub();

}

nástroje triedy C A, B{

public void sum(){

System.out.println(“Summation”);

}

public void sub(){

System.out.println(“Odčítanie”);

}

}

V hlavnom programe je teraz možné vytvoriť objekt C a volať obe metódy.

public static void main (reťazec args) {

C obj=new C();

obj.sum();

obj.sub();

}

Rozhrania teda možno použiť na implementáciu viacnásobného dedenia.

Ďalším využitím rozhraní je poskytovanie bezpečnosti. Pozrite si kód uvedený nižšie.

rozhranie A {

void sum ();

}

nástroje triedy B A {

verejná neplatná suma () {

System.out.println(“Summation”);

}

public void násobte () {

System.out.println(“Multiplikácia”);

}

}

Pri vytváraní objektu B je možné volať obe metódy súčet () aj násobenie (). Ak chce programátor obmedziť používanie funkcie multiply (), je to možné nasledovne.

public static void main(String args){

A obj=new B();

obj.sum();

}

A obj=new B(); vytvorí objekt. Je typu A a pamäť je alokovaná ako B. Je možné volať sum(), ale nemožno vykonať multiply(). Toto obmedzenie sa vykonáva pomocou rozhraní.

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

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

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

Dedičnosť vs rozhranie v jazyku Java

Dedičnosť je koncept OOP na odvodenie nových tried z existujúcich tried. Rozhranie je mechanizmus v OOP na implementáciu abstrakcie a viacnásobného dedenia.
Použitie
Dedičnosť poskytuje opätovnú použiteľnosť kódu. Rozhrania poskytujú abstrakciu a viacnásobné dedičstvo.

Zhrnutie – Dedičnosť verzus rozhranie v jazyku Java

Java je multiparadigmový programovací jazyk, ktorý podporuje objektovo orientované programovanie. Dedičnosť a rozhrania súvisia s objektovo orientovaným programovaním. Rozdiel medzi dedičnosťou a rozhraním je v tom, že dedičnosť spočíva v odvodení nových tried z existujúcich tried a rozhraní spočíva v implementácii abstraktných tried a viacnásobnej dedičnosti.

Stiahnite si verziu PDF dedičnosti vs rozhranie v jazyku Java

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

Odporúča: