C# 入門 & 実践 / C sharp

3-20. Interface / インターフェイスの実装


インターフェイスと抽象化クラス( abstract )のどちらを使うか?
規定のメソッドを宣言して、実装するクラスでメソッドの実体を書くという点では、同じような使い方になります。

インターフェイスのポイント:複数のインターフェイスを実装できる!
これが大きな違いです。

実際にやってみます。

    class HelloBase{}
    class HelloBase2{}

    interface IHello{
        //void Goodbye();
        int X { get;set; }
    }
    interface IGood : IHello
    {
        void Good();
    }

    // 当然 class からは、継承できない。
    // interface IBad : Hello    
    interface IBad : IHello
    {
        void Bad();
    }

    // IHello のメソッドを実装した Hello
    class Hello:IHello
    {
        private int x;
        public int X
        {
            get { return x; }
            set { x = value; }
        }
        public void Goodbye()
        {
            Console.WriteLine("Goodbye");
        }
    }

    // Helloを継承、さらに、2つのインターフェイスを実装!
    // IHello の分は、Hello に実装されているので書かない。
    class GoodBad : Hello,IGood,IBad
    {
        public void Good()
        {
            Console.WriteLine("Good");
        }
        public void Bad()
        {
            Console.WriteLine("Bad");
        }
        public void Goodbye() { }

    }

    class Tester
    {
        static void Main(string[] args)
        {
            Hello h = new Hello();
            h.Goodbye();
            GoodBad gb = new GoodBad();
            gb.Bad();
            gb.Good();
            gb.Goodbye();
        }
    }

というように、実装します。
次は、Interface の利用方法を見たいと思います。



3-19. 構造体( struct ) とクラス( class )の違い。 « 3. C# 入門 / 基礎、型、文法、基本? » 3-21. インターフェイス / キャストして使用 / is , as /

C# 入門 & 実践 / C sharp