Rozdíl Mezi Dědičností A Rozhraním V Javě

Obsah:

Rozdíl Mezi Dědičností A Rozhraním V Javě
Rozdíl Mezi Dědičností A Rozhraním V Javě

Video: Rozdíl Mezi Dědičností A Rozhraním V Javě

Video: Rozdíl Mezi Dědičností A Rozhraním V Javě
Video: výpočty gonozomální dědičnosti 2024, Smět
Anonim

Klíčový rozdíl - dědičnost vs rozhraní v Javě

Java je programovací jazyk vyvinutý společností Sun Microsystems. Java lze použít k vývoji různých aplikací. Jedná se o jazyk s více paradigmaty, který podporuje objektově orientované, strukturované atd. Hlavní výhodou prostředí Java je, že podporuje objektově orientované programování (OOP). Programátor může vytvářet třídy a objekty. V OOP jsou čtyři pilíře. Jsou to dědičnost, polymorfismus, abstrakce a zapouzdření. Dědičnost a rozhraní souvisí s OOP. Klíčovým rozdílem mezi dědičností a rozhraním je, že dědičnost spočívá v odvození nových tříd z existujících tříd a v rozhraní je implementace abstraktních tříd a vícenásobné dědičnosti.

OBSAH

1. Přehled a klíčový rozdíl

2. Co je dědičnost v Javě

3. Co je rozhraní v Javě

4. Podobnosti mezi dědičností a rozhraním v Javě

5. Porovnání vedle sebe - dědičnost vs rozhraní v Javě ve formě tabulky

6. Shrnutí

Co je dědičnost v Javě?

Dědičností lze dosáhnout opětovné použitelnosti kódu. Dědičnost pomáhá znovu použít atributy a metody existující třídy. Mechanismus odvozování nové třídy pomocí staré třídy se nazývá dědičnost. Stará třída je známá jako mateřská třída nebo super třída. Odvozená třída se nazývá podřízená třída nebo podtřída.

Syntaxe dědičnosti Java je následující.

třída subclass_name rozšiřuje superclass_name {

deklarace proměnné;

deklarace metody;

}

Koncept dědičnosti lze vysvětlit pomocí následujícího příkladu. Předpokládejme, že existuje třída s názvem A následujícím způsobem.

veřejná třída A {

public void sum () {

System.out.println („součet“);

}

}

Pokud chceme přidat novou metodu beze změny stávající třídy, můžeme to udělat následujícím způsobem.

veřejná třída B {

public void sub () {

System.out.println („Sub“);

}

}

Programátor může použít dědičnost k použití třídy A sum ().

veřejná třída B rozšiřuje třídu A {

public void sub () {

System.out.println („Sub“);

}

}

V hlavní funkci je možné pomocí dědičnosti vytvořit objekt B a zavolat sub (), které patří do třídy B a sum (), které patří do třídy A.

public static void main (String args) {

B obj = nový B ();

obj.sub ();

obj.sum ();

}

Existují různé typy dědičnosti. Jsou to jednoduchá dědičnost, vícenásobná dědičnost, víceúrovňová dědičnost a hierarchická dědičnost. V jednoduché dědičnosti existuje jedna základní třída a jedna odvozená třída. Ve víceúrovňové dědičnosti existují tři třídy, a to základní třída, střední třída a odvozená třída. Mezilehlá třída dědí ze základní třídy a odvozená třída dědí ze střední třídy. V hierarchické dědičnosti existuje jedna základní třída a mnoho odvozených tříd. Existuje speciální typ známý jako hybridní dědičnost. Jedná se o kombinaci dvou nebo více typů dědičnosti.

Rozdíl mezi dědičností a rozhraním v Javě
Rozdíl mezi dědičností a rozhraním v Javě

Obrázek 01: Dědičnost

V Multiple inheritance existuje mnoho základních tříd a jedna odvozená třída. Předpokládejme, že třída A a B jsou základní třídy. Třída C je odvozená třída. Pokud obě třídy A a B mají stejnou metodu a programátor tuto metodu volá z odvozené třídy, způsobí to problém nejednoznačnosti. Zdědění dvou tříd může způsobit chybu při kompilaci. Proto není v Javě podporována vícenásobná dědičnost. K překonání tohoto problému lze použít rozhraní.

Co je rozhraní v Javě?

Abstrakce je proces skrytí podrobností implementace a zobrazení pouze funkcí uživateli. Abstrakce lze dosáhnout pomocí abstraktních tříd nebo rozhraní. Abstraktní metoda je metoda bez implementace. Třída s alespoň jednou abstraktní metodou je abstraktní třída. Příklad abstraktní třídy je následující.

abstraktní třída A {

abstraktní neplatná suma ();

}

Předpokládejme, že existují dvě abstraktní třídy jako A a B. K implementaci abstraktních metod A a B je vytvořena nová třída C. Pak by třída C měla rozšířit jak A, tak B. Ale vícenásobná dědičnost není v Javě podporována. Proto by měl používat rozhraní. K deklaraci metod lze použít rozhraní, ale není možné metody definovat. Není možné vytvořit objekt pomocí rozhraní. Třída C by měla implementovat všechny metody v rozhraní A a B.

rozhraní A {

neplatná suma ();

}

rozhraní B {

void sub ();

}

třída C implementuje A, B {

public void sum () {

System.out.println („součet“);

}

public void sub () {

System.out.println („Odečtení“);

}

}

Nyní je v hlavním programu možné vytvořit objekt C a zavolat obě metody.

public static void main (String args) {

C obj = nový C ();

obj.sum ();

obj.sub ();

}

Rozhraní lze tedy použít k implementaci více dědičnosti.

Další použití rozhraní je v tom, že poskytuje zabezpečení. Viz níže uvedený kód.

rozhraní A {

neplatná suma ();

}

třída B implementuje A {

public void sum () {

System.out.println („součet“);

}

veřejné neplatné násobení () {

System.out.println („Násobení“);

}

}

Při vytváření objektu B je možné volat obě metody sum () a multiply (). Pokud chce programátor omezit použití funkce multiply (), je to možné následovně.

public static void main (String args) {

A obj = new B ();

obj.sum ();

}

A obj = new B (); vytvoří objekt. Je typu A a paměť je přidělena jako B. Je možné volat sum (), ale nelze provést multiply (). Toto omezení se provádí pomocí rozhraní.

Jaké jsou podobnosti mezi dědičností a rozhraním v Javě?

  • Oba koncepty souvisejí s objektově orientovaným programováním
  • Oba představují vztah IS-A.

Jaký je rozdíl mezi dědičností a rozhraním v Javě?

Rozdílný článek uprostřed před tabulkou

Dědičnost vs rozhraní v Javě

Dědičnost je koncept OOP k odvození nových tříd z existujících tříd. Rozhraní je mechanismus v OOP implementovat abstrakci a vícenásobné dědičnosti.
Používání
Dědičnost poskytuje opětovné použití kódu. Rozhraní poskytují abstrakci a vícenásobnou dědičnost.

Shrnutí - Dědičnost vs rozhraní v Javě

Java je programovací jazyk s více paradigmaty, který podporuje objektově orientované programování. Dědičnost a rozhraní souvisí s objektově orientovaným programováním. Rozdíl mezi dědičností a rozhraním spočívá v tom, že dědičnost spočívá v odvození nových tříd z existujících tříd a rozhraní v implementaci abstraktních tříd a vícenásobné dědičnosti.

Stáhněte si verzi Java dědičnosti vs rozhraní v Javě

Můžete si stáhnout verzi tohoto článku ve formátu PDF a použít jej pro offline účely podle citace. Stáhněte si zde PDF verzi. Rozdíl mezi dědičností a rozhraním v Javě

Doporučená: