interface

Interfaceって何ぞや?

って思ってましたよ。

実装しなければいけないもんを枠として備えている、って感じでしょうか?

package  
{
    public interface InterfaceTest
    {
        function sampleTest(str:String = ""):String;
    }
}

というインターフェイスがあって、これを実装(implement)するとなった場合

package  
{
    public class TestClass implements InterfaceTest
    {
        public function TestClass(str:String="") {}
       
        public function sampleTest(str:String = ""):String
        {
            return str + "\.unko";
        }
    }
}

となるわけで、このTestClassにsampleTest()がなければ、エラーになる。
インターフェイスに、もし、

public function sample02(str:String=""):String

があったとすれば、TestClassにはその記述がないので、エラーになる。
ほほう。
「絶対実装したいメソッドやらを入れなくてはいけない」場合、「入れ忘れ防止」になるわけですねー。
ほほほう。
上のインターフェイス・クラスを使って

package
{
    import flash.display.Sprite;
    import flash.text.TextField;
   
    public class Main extends Sprite
    {
       
        public function Main():void
        {
            init();
        }
       
        private function init():void
        {
            var unko:TestClass = new TestClass();
            var tf:TextField = new TextField();
            tf.text = unko.sampleTest("unko");
            addChild(tf);
        }
    }
}

をつくってやると・・・

[study] – interface – wonderfl build flash online

こうなるわけですね。
ほうほう。
簡単ではありますが、インターフェイスってなんぞ?
のお話。
ちょっと理解しましたよ。

 

Comments are closed.