●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

ルールを定める仕組み「インターフェース(Interface)」とは?

C#のインターフェース(Interface)は、「こういう機能を持っていてください」という約束ごと(仕様)を定義する仕組みです。
実装(中身)は持たず、実際の処理はクラス側に任せるのが特徴です。

インターフェースの特徴

  • interfaceキーワードで定義
  • メソッド・プロパティの宣言のみ(C#8以降は一部実装可)
  • 多重継承が可能(クラスは複数のインターフェースを実装できる)
  • 抽象クラスよりも「軽く柔軟」な設計に向いている

インターフェースの基本構文

public interface IShape {
    void Draw();                // メソッドの定義(実装なし)
    string Name { get; set; }   // プロパティの定義
}
    

実装クラスの例

public class Circle : IShape {
    public string Name { get; set; }

    public void Draw() {
        Console.WriteLine("○ を描画");
    }
}
    

インターフェースを使うメリット

  • 異なるクラスでも共通のルールで扱える
  • クラス設計が柔軟になる(多重実装可能)
  • テストや差し替えがしやすくなる(依存性注入など)

例:IShape型として扱う

IShape shape = new Circle();
shape.Draw();  // → ○ を描画
    

複数のインターフェースを実装

public interface IMovable {
    void Move();
}

public interface IAttackable {
    void Attack();
}

public class Robot : IMovable, IAttackable {
    public void Move() {
        Console.WriteLine("移動中");
    }

    public void Attack() {
        Console.WriteLine("攻撃!");
    }
}
    

抽象クラスとの違い

項目 インターフェース 抽象クラス
実装の有無 基本なし(C#8以降は可) あり(共通処理を含められる)
多重継承 可能 不可(1つのみ)
使い分け 共通ルールを定めたいとき 共通処理も定義したいとき

まとめ

インターフェース(Interface)は、「この機能を持つべき」というルールを定義するための仕組みです。
実装はクラス側に任されるため、柔軟で拡張しやすい設計ができます。
多態性を活かした開発や、疎結合なプログラム設計には欠かせない存在です!