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: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors