オブジェクト指向プログラミングの分野では、継承は重要な側面です。これにより、既存のクラスから継承し、サブクラス(サブクラス)に新しい機能を追加できます。このチュートリアルでは、継承の基本をC#の実践的な形で学ぶために、特定のサブクラス「トラック」の作成に焦点を当てます。

主要な知見

  • 継承により、基底クラスからサブクラスを作成できます。
  • コンストラクタは、サブクラスの特定の特性を設定するために重要です。
  • 基底クラスのメソッドは、サブクラスでオーバーライドし、特定の動作を定義できます。

ステップバイステップガイド

ステップ 1: ソリューションエクスプローラーを使用してクラスを追加

トラックのサブクラスを作成するために、ソリューションエクスプローラーを開きます。ここで右クリックして「追加」オプションを選択します。新しいクラスを追加し、その名前を「トラック」とします。このクラスには、トラックに特有のすべての特性とメソッドが含まれます。

C#でトラックのサブクラスを作成し、通行料計算を実装する。

ステップ 2: プライベート変数を作成

トラッククラスでは、次のステップとして、軸の数を保存するプライベート変数を作成します。この情報は、通行料の計算で重要な役割を果たします。変数の名前は「anzahlAchsen」にすることができます。これで、トラックの特有の特性の最初の部分が定義されました。

ステップ 3: サブクラスのコンストラクタを作成

次に、トラッククラスのコンストラクタを作成する時が来ました。最初にオーバーロードされたコンストラクタメソッドから始めます。このメソッドは、モデル、燃費、タンク容量などのパラメータを受け入れます。これらの値を、基底クラスの自動車のコンストラクタメソッドに渡します。軸の数も定義されていることを確認する必要があります。

ステップ 4: 基底クラスからサブクラスを派生させる

トラッククラスが基底クラスの自動車のサブクラスとして認識されるようにするため、トラッククラスのヘッダーでコロンを使って基底クラスを追加します。これにより、トラッククラスと基底クラス自動車との関係が確立され、それにアクセスできるようになります。

C#でトラックのサブクラスを作成し、通行料の計算を実装する。

ステップ 5: 第二のサブクラスコンストラクターメソッドを作成

オーバーロードされたメソッドに加えて、通常のコンストラクターメソッドを作成します。このメソッドは、モデル、燃費、タンク容量をパラメータとして持ちますが、軸の数を入力として受け取りません。その代わり、デフォルトで 2 に設定され、トラックにとって最も一般的なシナリオに対応します。

ステップ 6: 走行メソッドをオーバーライド

次のステップは、基底クラス自動車で定義されている走行メソッドをオーバーライドすることです。このメソッドでは、走行距離、車両パラメータ、トラックが高速道路を走行したかどうかに基づいて走行費用を計算します。軸の数に基づいて通行料が計算されることを確認する必要があります。

ステップ 7: 通行料を計算するための Switch 文の使用

ここで、軸の数に対処するさまざまなケースを処理する switch 文を導入できます。これは、異なる軸の数を持つトラックが異なる通行料のレートを持つため重要です。代替の制御構造を使用することもできますが、switch 文はここでは見やすさと可読性を提供します。

ステップ 8: サブクラスのコンストラクタを呼び出す

トラッククラスが定義されたので、プログラム CS 内でクラスのインスタンスを作成できます。トラッククラスのコンストラクタを呼び出して、必要なすべてのパラメータを含む新しいトラックオブジェクトを生成します。また、トラックの燃費と特定の特性を設定します。

C#でサブクラスのトラックを作成し、通行料計算を実装する

ステップ 9: トラックの運転と走行コストの出力

トラックをインスタンス化したら、走行メソッドを呼び出して走行させます。走行した距離と、トラックが高速道路を走行したかどうかを渡します。最後に、軸の数に基づいて計算された走行コストをコンソールに出力します。

C#でサブクラスLKWを作成し、料金計算を実装します。

まとめ – C# におけるトラックサブクラスの作成

このチュートリアルでは、C# でトラックのサブクラスを作成する方法を学びました。継承の基本を学び、プライベート変数やコンストラクタをサブクラスに実装しました。メソッドをオーバーライドし、トラックの特定の動作を定義しました。これらのスキルを持って、今後は C# でより複雑なオブジェクト指向プログラムを書くことができます。

よくある質問

クラスとサブクラスの違いは何ですか?クラスは一般的なテンプレートモデルであり、サブクラスは基底クラスから特定の特性とメソッドを継承します。

C# でコンストラクタを作成するにはどうすればよいですか?コンストラクタは、それを作成するクラスによって定義され、クラスと同じ名前を持ち、戻り値はありません。

サブクラスでメソッドを複数回オーバーライドできますか?はい、サブクラスでメソッドをオーバーライドできます。これは、異なるサブクラス用の特定の動作を定義するのに役立ちます。

C# で switch 文を使用するにはどうすればよいですか?switch 文を使用すると、変数の値に応じて異なるコードパスを制御できます。これは、複雑な分岐を避けるための効果的な方法です。