Rozhraní v Java s příkladem
V čem je rozhraní Java?
An Rozhraní v Java programovací jazyk je definován jako abstraktní typ používaný k určení chování třídy. A Java rozhraní obsahuje statické konstanty a abstraktní metody. Třída může implementovat více rozhraní. V Java, rozhraní jsou deklarována pomocí klíčového slova interface. Všechny metody v rozhraní jsou implicitně veřejné a abstraktní.
Syntaxe pro deklarování rozhraní
Chcete-li ve své třídě používat rozhraní, připojte za název třídy klíčové slovo „implements“ a za ním název rozhraní.
interface { //methods }
Příklad implementačního rozhraní
Nyní pojďme pochopit rozhraní v Java s příkladem:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
klikněte zde pokud video není přístupné
Proč je vyžadováno rozhraní?
Abychom pochopili použití rozhraní v Java lépe, uvidíme Java příklad rozhraní. Třída “Media Player” má dvě podtřídy: CD přehrávač a DVD přehrávač. Každý z nich má svou jedinečnou implementaci rozhraní Java způsob přehrávání hudby.
Další třída “Combo mechanika” dědí CD i DVD (viz obrázek níže). Jakou herní metodu by měl zdědit? To může způsobit vážné problémy s designem. a proto, Java neumožňuje vícenásobné dědictví.
Nyní si vezměme další příklad psa.
Předpokládejme, že máte požadavek, kdy třída „pes“ dědí třídu „zvíře“ a „Pet“ (viz obrázek níže). Ale nemůžete rozšířit dvě třídy Java. Tak co bys dělal? Řešením je rozhraní.
Kniha pravidel pro rozhraní říká,
- A Java implementovat rozhraní je 100% abstraktní třída a má pouze abstraktní metody.
- Třída může implementovat libovolný počet rozhraní.
Class Dog se může rozšířit na třídu „Zvíře“ a implementovat rozhraní jako „Pet“.
Java Příklad rozhraní:
Pojďme pochopit níže uvedený program rozhraní Java:
Krok 1) Zkopírujte následující kód do editoru.
interface Pet{ public void test(); } class Dog implements Pet{ public void test(){ System.out.println("Interface Method Implemented"); } public static void main(String args[]){ Pet p = new Dog(); p.test(); } }
Krok 2) Uložte, zkompilujte a spusťte kód. Sledujte výstup rozhraní in Java program.
Rozdíl mezi třídou a rozhraním
Ve třídě můžete vytvořit instanci proměnné a vytvořit objekt. | V rozhraní nemůžete vytvořit instanci proměnné a vytvořit objekt. |
Třída může obsahovat konkrétní (s implementací) metody | Rozhraní nemůže obsahovat konkrétní (s implementací) metody |
Specifikátory přístupu používané u tříd jsou soukromé, chráněné a veřejné. | V rozhraní je použit pouze jeden specifikátor – Public. |
Kdy použít rozhraní a abstraktní třídu?
- Abstraktní třídu použijte, když je třeba definovat šablonu pro skupinu podtříd
- Použijte rozhraní, když je třeba definovat roli pro jiné třídy, bez ohledu na strom dědičnosti těchto tříd
Musíte znát fakta o rozhraní
- A Java třída může implementovat více Java Rozhraní. Je nutné, aby třída implementovala všechny metody deklarované v rozhraních.
- Třída by měla přepsat všechny abstraktní metody deklarované v rozhraní
- Rozhraní umožňuje odeslat zprávu objektu bez ohledu na to, do které třídy patří.
- Třída musí poskytovat funkčnost pro metody deklarované v rozhraní.
- Všechny metody v rozhraní jsou implicitně veřejné a abstraktní
- Rozhraní nelze vytvořit
- Odkaz na rozhraní může ukazovat na objekty svých implementačních tříd
- Rozhraní se může rozšířit z jednoho nebo více rozhraní. Třída může rozšířit pouze jednu třídu, ale implementuje libovolný počet rozhraní
- Rozhraní nemůže implementovat jiné rozhraní. V případě potřeby musí rozšířit další rozhraní.
- Rozhraní, které je deklarováno uvnitř jiného rozhraní, se nazývá vnořené rozhraní
- V době deklarace musí být inicializována proměnná rozhraní. Jinak kompilátor vyvolá chybu.
- Třída nemůže implementovat dvě rozhraní v jazyce Java, která mají metody se stejným názvem, ale odlišným typem návratu.
Shrnutí:
- Třída, která implementuje rozhraní, musí poskytovat funkčnost pro metody deklarované v rozhraní
- Všechny metody v rozhraní jsou implicitně veřejné a abstraktní
- Rozhraní nelze vytvořit
- Odkaz na rozhraní může ukazovat na objekty svých implementačních tříd
- Rozhraní se může rozšířit z jednoho nebo více rozhraní. Třída může rozšířit pouze jednu třídu, ale implementovat libovolný počet rozhraní