C# 継承
継承(派生クラスと基底クラス)
C#では、あるクラスから別のクラスにフィールドとメソッドを継承できます。
「継承の概念」を次の2つのカテゴリに分類します。
- 派生クラス(子) - 別のクラスから継承するクラス
- 基本クラス(親) - 継承元のクラス
クラスから継承するには、:
記号を使用します。
以下の例では、Car
クラス(子)は、Vehicle
クラス(親)からフィールドとメソッドを継承します。
例
{.language-csharp .techis-white}
class Vehicle // base class (parent)
{
public string brand = "Ford"; // Vehicle field
public void honk() // Vehicle method
{
Console.WriteLine("Tuut, tuut!");
}
}
class Car : Vehicle // derived class (child)
{
public string modelName = "Mustang"; // Car field
}
class Program
{
static void Main(string[] args)
{
// Create a myCar object
Car myCar = new Car();
// Call the honk() method (From the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand field (from the Vehicle class) and the value of the modelName from the Car class
Console.WriteLine(myCar.brand + " " + myCar.modelName);
}
}
「継承」を使用する理由とタイミング
- コードの再利用性に役立ちます。新しいクラスを作成するときに、既存のクラスのフィールドとメソッドを再利用します。
ヒント:ポリモーフィズムの章を見てください。継承されたメソッドを使用してさまざまなタスクを実行します。
封印されたキーワード
あるクラスを他のクラスに継承させたくない場合は、sealed
キーワードを使用します。
sealed
されたクラスにアクセスしようとすると、C#はエラーを生成します。
{.language-csharp .techis-white .techis-border-red}
sealed class Vehicle
{
...
}
class Car : Vehicle
{
...
}
エラーメッセージは次のようになります。
'Car': cannot derive from sealed type 'Vehicle'
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。