C#_ インターフェース とは

定義だけを記したもの。宣言のみ? 

interface
抽象メソッドのみを持つ抽象クラスのようなもの。

クラスが実装すべき規約を定めるもの
クラス設計者クラス利用者との仲介役を担う。

規約ここでは、どういうメソッドどういう引数を渡すかなど。

 

抽象メソッド
実装を持たずメソッドの意味(規約)だけを定義したメソッド。
抽象メソッドの実装は基底クラスでは行わず、派生クラスで行う。

 

インターフェースの定義

class キーワードの代わりに、interface キーワードを使う。

 

Hoge がインターフェース名。

    interface Hoge
    {
        //メソッド・プロパティ宣言
        void hoge();
    }

 

インターフェースの実装

Fuga がクラス名。

    class Fuga : Hoge
    {
        //クラスの定義
        public void hoge()
        {
            //処理
        }
    }

 

 

特徴

 クラスとよく似ているが、以下のような特徴がある。
・メンバー変数を持つことが出来ない。
・static メソッドを持つことが出来ない。
・宣言したメソッド・プロパティはすべてpublic abstract になる。
・1 つのクラスが複数のインターフェースを実装できる。

 

 

こちらから。
http://ufcpp.net/study/csharp/oo_interface.html
https://qiita.com/IganinTea/items/e1d35db0a14a84bda452

以上。
継承やら抽象クラスとかabstractなど、どんな時に使えばいいかよく分からん。