وراثت (Inheritance) در سی شارپ
در مثال زیر ، کلاس Car (فرزند) فیلدها و متدها را از کلاس Vehicle (پدر) به ارث می برد:
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);
}
}
چرا و چه زمانی باید از "وراثت" استفاده کرد؟
وراثت برای استفاده مجدد کد مفید است: هنگام ایجاد کلاس جدید ، از فیلدها و متدهای کلاس موجود استفاده مجدد کنید.
نکته: همچنین نگاهی به درس بعدی ، چند شکلی (polymorphism) بیندازید که از متدهای ارثی برای انجام کارهای مختلف استفاده می کند.
کلمه کلیدی sealed
اگر نمی خواهید کلاس های دیگر از یک کلاس به ارث برده شوند ، از کلمه کلیدی sealed استفاده کنید:
sealed class Vehicle
{
...
}
class Car : Vehicle
{
...
}