Vmesnik (Java)

Iz MaFiRaWiki

(Preusmerjeno iz Vmesnik)

V Javi je vmesnik (angl. interface) seznam deklaracij pomensko povezanih metod, ki opisuje protokol za uporabo objekta. Objekt razreda, ki zadošča vmesniku, mora vsebovati definicije metod, ki jih deklarira vmesnik.

Vsebina

Definicija vmesnika

Vmesnik ImeVmesnika definiramo v datoteki ImeVmesnika.java takole:

public interface ImeVmesnika extends Vmesnik1, .., VmesnikN {
   ...
}

Namesto določila public lahko uporabimo tudi private ali protected. Določilo extends pove, da je vmesnik ImeVmesnika razširitev vmesnikov Vmesnik1, ..., VmesnikN, kar pomeni, da od njih podeduje deklaracije. Če vmesnik vsebuje deklaracije abstraktnih metod, je abstraktni vmesnik, kar označimo z določilom abstract. Java 5.0 pozna tudi generične vmesnike, ki vsebujejo parametre.

Uporaba vmesnika

Dejstvo, da razred zadošča enemu ali več vmesnikom označimo z določilom implements:

public class ImeRazreda implements Vmesnik1, ..., VmesnikN {
...
}

Tak razred mora vsebovati definicije vseh metod, ki so naštete v definicijah vmesnikov Vmesnik1, ..., VmesnikN.

V mnogih pogledih se vmesniki obnašajo kot razredi, le da niso vezani s hierarhijo podrazredov in nadrazredov. Tako lahko metoda sprejme argument ali vrne rezultat, ki zadošča danemu vmesniku. Prav tako lahko definiramo lokalno spremenljivko, katere tip je vmesnik. Zgled:

public Vmesnik1 imeMetode(Vmesnik2 x) {
  Vmesnik3 y = new Razred1();
  ...
}

Metoda imeMetode sprejme objekt x, ki zadošča vmesniku Vmesnik2 in kot rezultat vrne objekt, ki zadošča vmesniku Vmesnik1. Lokalna spremenljivka y ima tip Vmesnik 3. Njena začetna vrednost je objekt razreda Razred1. Pri tem mora Razred1 zadoščati vmesniku Vmesnik3, sicer Java javi napako.

Primerjava z razredi

V Javi ima razred kvečjemu en nadrazred, zadošča pa lahko poljubnemu številu vmesnikov. Vmesniki torej niso vezani s hierarhijo razredov in omogočajo, da enovito obravnavamo objekte s sorodno funkcionalnostjo, čeprav so ti pripadniki različnih, med seboj nepovezanih razredov.

Zgledi

Glej tudi

Osebna orodja