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.

Proč je vyžadováno rozhraní

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í.

Proč je vyžadováno rozhraní

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í.

Proč je vyžadováno 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“.

Proč je vyžadováno rozhraní

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

Třída
Rozhraní
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í