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: 0