Loading:


Definiowanie interfejsu - szablon dla innych klas - interface , implements [AS 2]

Interface jest to szkielet, bÄ…dź struktura dla innych klas które używajÄ… tej klasy jako interfejs. Interfejs deklaruje jakie funkcje muszÄ… siÄ™ znajdować w klasach które jÄ… używajÄ….

 

Klasy pochodne mogą mieć też inne funkcji, metody ale tylko wtedy jeśli wykorzystały wszystkie funkcjie z interfajsu.

 

Aby utworzyc swój interfejs wystarczy polecenie interface nazwaInterfejsu { }, żeby natomast klasy korzystaÅ‚y z takiego interfejsu należy dodać po class oraz nawie klasy 2 wyarazy po spacjach: implements nazwainterfejsu .

 

Funkcje z interfejsu moga być nadpisywane przez każdÄ… z klas w razie koniecznoÅ›ci, również możliwe jest korzystanie z wiÄ™cej niż jednego interfejsu dla jednej klasy. W takim przypadku należy oddzielić nazwy interfejsów przecinkami.

 

Interjesu również mogÄ… dziedziczyć siÄ™ nazwajem np możemy mieć jeden ogólny interfejs oraz kilka mniejszych korzystajÄ…cych z jednego dużego jako szkielet. Aby to osiÄ…gnąć, należy tuz pod interface nazwainterfejsu dopisać: extends kolejnyInterfejs , skÅ‚adnia jest taka sama jak dla zwykÅ‚ych klas dziedziczÄ…cych.

 

Kompatybilność: Flash6+

 

Przykład:

//tworzenie interfejsu
interface Ia {
 function k():Number; // method declaration only
 function n(x:Number):Number; // without implementation
}

// tworzenie klasy która korzysta z interfejsu
class B implements Ia {
//2 funkcje które muszÄ… być w klasie k(), n(x)
 function k():Number {
 return 25;
 }
 function n(x:Number):Number {
 return x + 5;
 }
}
var mvar:B = new B();
trace(mvar.k()); // 25
trace(mvar.n(7)); // 12

// tworzenie kolejnej klasy która korzysta z interfejsu oraz nadpisuje funkcje z interfejsu
class C implements Ia {
 function k():Number {
 return 25;
 }
} // zwróci jednak błąd ponieważ klasa musi implementować każdÄ… funkcjÄ™ interfejsu

// tworzenie kolejnego interfejsu
interface Ib {
 function o():Void;
}
//implementowanie z więcej niż jednego interfejsu
class D implements Ia, Ib {
 function k():Number {
 return 15;
 }
 function n(x:Number):Number {
 return x * x;
 }
 function o():Void {
 trace("o");
 }
}
mvar = new D();
trace(mvar.k()); // 15
trace(mvar.n(7)); // 49
trace(mvar.o()); // "o"

//interfejs również może dziedziczyć funkcje po innym interfjesie
interface Ic extends Ia {
 function p():Void;
}
//klasa posiadajÄ…ce 2 interfejsy
class E implements Ib, Ic {
 function k():Number {
 return 25;
 }
 function n(x:Number):Number {
 return x + 5;
 }
 function o():Void {
 trace("o");
 }
 function p():Void {
 trace("p");
 }
}



Napisz Artyku³

Listing

niema




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38473
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2021 v.1.5 | design: diviXdesign & rainbowcolors