C#で学ぶ継承の基本:PersonとStudentクラスを例に解説
C#は、オブジェクト指向プログラミングを学ぶうえで非常に適した言語です。その中でも「継承」は、オブジェクト指向の中核となる概念の1つです。継承を使うことで、コードの再利用性を高め、共通の機能を一元化して保守性の高いプログラムを作ることができます。また、派生クラスで独自のプロパティやメソッドを追加することで、特定の振る舞いを持つオブジェクトを簡単に拡張できます。
この記事では、C#における継承の基本を、「Person」クラスを基底クラス、「Student」クラスを派生クラスとした具体例を通じて解説します。共通のプロパティやメソッドを活用しながら、派生クラスでどのように新しい機能を追加できるかを理解しましょう。このシンプルなサンプルコードを通じて、継承の仕組みとそのメリットを実感し、今後のアプリケーション開発に役立ててください。
サンプルコード
解説
1. 基底クラス: Person
Name
(string)
人物の名前を保持するプロパティです。Age
(int)
人物の年齢を保持するプロパティです。Walk()
メソッド
「歩く」動作を表現しています。実装例ではコンソールへ文字列を出力するだけですが、実際のアプリケーションでは移動処理やアニメーション制御に活用できます。
2. 派生クラス: Student
School
(string)
学生の通う学校名を保持するプロパティです。Study()
メソッド
「勉強する」動作を表現しています。学習進捗の管理や通知機能など、実際のロジックに応じて拡張可能です。
3. Main
メソッド内での実行例
- インスタンス生成とプロパティの設定
Name
とAge
は基底クラス (Person
) で定義されているため、Student
でも利用可能です。School
は派生クラス (Student
) で独自に追加したプロパティです。- メソッドの呼び出し
継承のメリット
- コードの再利用性
共通のプロパティやメソッドを基底クラスで定義し、派生クラスで再利用できます。 - 拡張性
派生クラスに新しいプロパティやメソッドを追加することで、具体的な機能を拡張できます。 - 保守性
共通部分が基底クラスに集約されるため、修正や変更が一か所で済み、保守が容易になります。
今後の発展
- オーバーライド (override / virtual)
基底クラスのメソッドにvirtual
を付け、派生クラスでoverride
することで動作を上書きできます。
- 抽象クラス (abstract)
メソッドの実装を強制する場合にabstract
キーワードを使用する方法があります。 - インターフェース (interface)
振る舞いの契約のみを示し、クラス間の依存を減らす設計が可能です。
まとめ
このサンプルでは、C# における継承の基本を分かりやすく解説しました。
基底クラスで共通のプロパティやメソッドをまとめ、派生クラスで固有の機能を追加することで、再利用性や保守性を向上させることができます。実際のプロジェクトでは、継承を適切に活用し、可読性や拡張性の高い設計を心がけましょう。
やってみよう
会社員を追加してみよう
ディスカッション
コメント一覧
まだ、コメントがありません