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");
}
}
Listing
Ranga: Administrator serwisu Punktów: 38473

