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 のレビューも受けられます。
すべてのチャレンジ