Paradigm Shift Design

ISHITOYA Kentaro's blog.

インターフェイス

1044: インターフェイスメソッド onTimelineSelected (名前空間 timelineBar:TimelineBarEventListener) はクラス timelineBar:TimelineBarPanel によって実装されません。

とか言われる.

package timelineBar
{
    public interface TimelineBarEventListener
    {
        function onTimelineSelected(event:TimelineEvent): void;
        
    }
}

は,次のようにimplementsしないといけないそう.

package timelineBar
{
    public class TimelineBarPanel
    {
        //function onTimelineSelected(event:TimelineEvent): voidはだめ
        public function onTimelineSelected(event:TimelineEvent): void
        {
            //some implementation
        }
        
    }
}

ちなみに,interfaceのメソッド宣言にアクセス指定子はつけられない.
publicなのは当然なので,publicをつけるとエラーになるくせに,implementationでpublicをつけることを強制するのは,なんとなく違和感.
なら,interfaceのメソッド宣言にもpublic指定子を強制すべきな気がする.


interface implements | soohei.net