Rozhraní v Java s příkladem
⚡ Chytré shrnutí
Rozhraní v Java je břišní svaltracTyp t, který specifikuje chování, které musí třída implementovat, obsahující konstanty a abstracmetody t. Tento zdroj vysvětluje, co je rozhraní, proč je potřeba, jak ho deklarovat a implementovat a jak se rozhraní liší od tříd a abstrakcí.tractřídy t.
V čem je rozhraní Java?
An Rozhraní v Java Programovací jazyk je definován jako abstracTyp t používaný k určení chování třídy. A Java rozhraní obsahuje statické konstanty a abstract metody. Třída může implementovat více rozhraní. V JavaRozhraní jsou deklarována pomocí klíčového slova interface. Všechny metody v rozhraní jsou implicitně veřejné a abstract.
Syntaxe pro deklarování rozhraní
Chcete-li ve své třídě použít rozhraní, přidejte 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í si pojďme vysvětlit rozhraní v Java s příkladem:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
klikněte zde pokud video není přístupné.
klikněte zde pokud video není přístupné
Proč je vyžadováno rozhraní?
Pochopit použití rozhraní v Java lépe, podívejme se na 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 vlastní unikátní metodu implementace rozhraní pro přehrávání hudby.
Jiná třída, „Combo drive“, dědí CD i DVD (viz obrázek níže). Který způsob přehrávání by měla zdědit? To může způsobit vážné problémy s návrhem, 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, kde třída „pes“ dědí třídy „zvíře“ a „Domácí mazlíček“ (viz obrázek níže). Nemůžete ale rozšířit dvě třídy v JavaTak co byste udělali? Řešením je rozhraní.
Pravidla pro rozhraní říkají:
- A Java rozhraní je 100% abstractřída t a má pouze abstracmetody.
- Třída může implementovat libovolný počet rozhraní.
Třída Pes může rozšířit třídu „Zvíře“ a implementovat rozhraní „Domácí mazlíček“.
Java Příklad rozhraní
Pojďme si porozumět níže uvedenému rozhraní programu 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í v Java program.
Rozdíl mezi třídou a rozhraním
| Třída | Rozhraní |
|---|---|
| Ve třídě můžete vytvářet instance proměnných a objekty. | V rozhraní nelze vytvářet instance proměnných ani objekty. |
| 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 private, protected a public. | V rozhraní se používá pouze jeden specifikátor – public. |
Kdy použít Interface a AbstracTřída t?
- Používejte břišní svalytract třídu, když je potř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 břišní svalytract metody deklarované v rozhraní.
- Rozhraní umožňuje odeslat zprávu objektu bez ohledu na to, do které třídy patří.
- Třída musí poskytovat funkcionalitu pro metody deklarované v rozhraní.
- Všechny metody v rozhraní jsou implicitně veřejné a abstract.
- Rozhraní nelze vytvořit instanci.
- Odkaz na rozhraní může ukazovat na objekty svých implementujících tříd.
- Rozhraní může být rozšiřováno z jednoho nebo mnoha rozhraní. Třída může rozšiřovat pouze jednu třídu, ale implementovat libovolný počet rozhraní.
- Rozhraní nemůže implementovat jiné rozhraní. V případě potřeby musí rozšířit jiné rozhraní.
- Rozhraní, které je deklarováno uvnitř jiného rozhraní, se označuje jako vnořené rozhraní.
- V okamžiku deklarace musí být inicializována proměnná rozhraní. Jinak kompilátor vyvolá chybu.
- Třída nemůže implementovat dvě rozhraní v Java které mají metody se stejným názvem, ale s jiným návratovým typem.





