オブジェクト指向 C#

C#のインターフェースと抽象化

このレッスンでは、オブジェクトができることを表すインターフェースを定義し、クラスで実装します。

はじめに

インターフェースは、通知を送れるといった、オブジェクトにできることを表します。データをどう保存するかや、何を継承するかは決めません。互いに関係のない複数のクラスでも、同じインターフェースを実装できます。C#では慣習として、インターフェースの名前はIで始めます。

インターフェースINotifierはSendメソッドを宣言しているだけです。クラスEmailNotifierは、メールで通知を表示することでこのインターフェースを実装します。変数notifierの型はINotifierなので、使う側のコードは具体的な送り方に依存しません。SMSやSlackの送り方を追加したいときは、INotifierを実装する新しいクラスを作るだけです。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;

interface INotifier { void Send(string message); }
class EmailNotifier : INotifier { public void Send(string message) => Console.WriteLine($"Email: {message}"); }

class Program
{
    static void Main()
    {
        INotifier notifier = new EmailNotifier();
        notifier.Send("Build complete");
    }
}
実行結果
Email: Build complete

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ