Vmesnik

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje
Članek govori o vmesnikih (ang. interface) v Javi.

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

Java ne omogoča hibridnega vozila z dvojnim dedovanjem, da ne pride do dvoumnosti. Konstruktor super() ne bi nedvoumno deloval.

Vmesnik omogoča, da podedujemo lastnosti iz več razredov na način pri hibridnem vozilu.




Nekateri programski jeziki omogočajo večkratno dedovanje: podrazred

podeduje atribute in metode več kot enega nadrazreda

Vsebina

Problemi

  • atributi in metode v nadrazredih imajo enaka imena
  • super() – klic konstruktorja iz katerega nadrazreda?

Java ne omogoča večkratnega dedovanja

Namesto tega ponuja koncept vmesnika

Razlika med vmesnikom in razredom

Razlika med vmesnikom in razredom:

  • vse metode v vmesniku morajo biti abstract
  • vsi atributi (če jih ima) morajo biti static final

Vmesnik predpiše metode, ki jih mora implementirati nek podrazred = > predpiše obnašanje podrazreda

Podrazred lahko deduje samo od enega nadrazreda, implementira pa lahko več različnih vmesnikov.

public class Podrazred extends Nadrazred implements Vmesnik1, Vmesnik2

S stališča dedovanja Podrazred

  • podeduje atribute in metode razreda Nadrazred
  • dodatno deklarira nove atribute in metode
  • če mu katera od podedovanih metod ne ustreza, jo lahko redefinira

S stališča implementacije vmesnika Podrazred

  • deklarira vse metode, ki so specificirane v vmesnikih Vmesnik1, Vmesnik2
  • lahko uporblja atribute (statične spremenljivke), ki so definirani v vmesnikih

Podrazred je razširitev treh tipov: Nadrazred, Vmesnik1 in Vmesnik2

Deklaracija vmesnika

public interface vmesnik1
{
  public static final int (KONSTANTA=5);
  public abstract void nekaj_naredi();
}

Primerjava: abstraktni razred - vmesnik

Primerjava: abstraktni razred - vmesnik

Enako

  • ne moremo generirati objektov abstraktnega tipa ali vmesnika

Različno

  • v abs.razredih so lahko samo nekatere metode abstraktne, v vmesniku so vse
  • atributi abs.razreda se obnašajo kot spremenljivke objektov, atributi vmesnika pa so statične konstante.

Uporaba abstraktnega razreda

  • vnaprej deklariramo znane atribute in metode, ki jih podeduje podrazred: recimo pri igri s kartami metodo mesaj()

Uporaba vmesnika

  • vmesnik določa le del značilnosti, ki jih vsak podrazred implementira na svoj način: recimo pri glasbenih instrumentih metodo zaigrajTon()

Povezave

Vzpostavljeno iz »http://www.e-studij.si/Vmesnik«
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja