ارثبری در C#

ارثبری در C#
ارثبری در C# یک مفهوم اساسی در برنامهنویسی شیگرا است که به یک کلاس (که به آن کلاس مشتق یا فرزند گفته میشود) اجازه میدهد تا متغیرها، متدها، خواص و سایر اعضای یک کلاس دیگر (که به آن کلاس پایه یا والد گفته میشود) را به ارث ببرد. این ویژگی باعث استفاده مجدد از کد و ایجاد رابطه سلسلهمراتبی بین کلاسها میشود.
ویژگیهای کلیدی ارثبری:
- کلاس پایه: کلاسی که اعضای آن توسط کلاس دیگر به ارث برده میشود.
- کلاس مشتق: کلاسی که اعضای کلاس پایه را به ارث میبرد.
- کلمه کلیدی
base
: برای دسترسی به اعضای کلاس پایه از داخل کلاس مشتق استفاده میشود. - کلمه کلیدی
sealed
: از ارثبری بیشتر از یک کلاس جلوگیری میکند. - کلمات کلیدی
virtual
وoverride
: اجازه میدهد متدهای کلاس پایه در کلاس مشتق بازنویسی شوند.
نحوه استفاده:
کد نمونه:
// کلاس پایه
class Animal
{
public string Name { get; set; }
public void Eat()
{
Console.WriteLine($”{Name} در حال غذا خوردن است.”);
}
public virtual void Speak()
{
Console.WriteLine(“حیوان صدا میکند.”);
}
}
// کلاس مشتق
class Dog : Animal
{
public string Breed { get; set; }
public override void Speak()
{
Console.WriteLine($”{Name} میگوید: واق واق!”);
}
}
// کلاس مشتق دیگر
class Cat : Animal
{
public override void Speak()
{
Console.WriteLine($”{Name} میگوید: میو میو!”);
}
}
استفاده از کلاسها:
class Program
{
static void Main(string[] args)
{
Dog dog = new Dog
{
Name = “بادی”,
Breed = “گلدن رتریور”
};
dog.Eat(); // خروجی: بادی در حال غذا خوردن است.
dog.Speak(); // خروجی: بادی میگوید: واق واق!
Cat cat = new Cat
{
Name = “ویسکرز”
};
cat.Eat(); // خروجی: ویسکرز در حال غذا خوردن است.
cat.Speak(); // خروجی: ویسکرز میگوید: میو میو!
}
}
توضیحات:
- بازنویسی متدها:
- از کلمه کلیدی
virtual
در کلاس پایه استفاده میشود تا امکان بازنویسی متد فراهم شود. - از کلمه کلیدی
override
در کلاس مشتق برای بازنویسی متد استفاده میشود.
- از کلمه کلیدی
- دسترسی به اعضا:
- اعضای کلاس پایه باید
public
،protected
یاprotected internal
باشند تا قابل ارثبری باشند. - اعضای
private
کلاس پایه بهطور مستقیم در کلاس مشتق قابل دسترسی نیستند.
- اعضای کلاس پایه باید
- چندریختی (Polymorphism):
- کلاس مشتق میتواند متدهای کلاس پایه را بازنویسی کرده و رفتار خاص خود را ارائه دهد.
- کلمه کلیدی
sealed
:- اگر یک کلاس با کلمه کلیدی
sealed
تعریف شود، نمیتوان از آن ارثبری کرد. - همچنین اگر یک متد
sealed
باشد، امکان بازنویسی بیشتر آن وجود ندارد.
- اگر یک کلاس با کلمه کلیدی
دیدگاهتان را بنویسید