مفهوم overriding در سی شارپ
در این مقاله می خواهم در مورد مفهوم overriding در سی شارپ توضیح دهم. بدون حاشیه به سراغ تعریف متد Overriding می روم.
تعریف متد Overriding
متدی که در کلاس فرزند بازنویسی مجدد گردد متد Overriding می گویند. به عبارتی متدی است که بتوان بدنۀ یک متد را در کلاس فرزند از نوع و یک جور دیگر نوشت.
حال اینکه چگونه می توان این چنین متد را در سی شارپ تعریف کنیم، ادامه بحث این مقاله می باشد.
نکته: متدهایی قابل override کردن هستند که از نوع virtual باشند.
public class Test1
{
public virtual void Show()
{
Console.WriteLine("Show 1");
}
}
class Test2:Test1
{
public override void Show()
{
Console.WriteLine("Show 2");
}
}
پس برای داشتن یک متد با قابلیت overriding در کلاس فرزند باید ابتدا آن متد را در کلاس والد بصورت virtual تعریف کنیم و سپس با کلمه کلیدی override در کلاس فرزند آن متد را بازنویسی مجدد کنیم.
دقت داشته باشید که متدهای کلاس های از نوع abstract برای override کردن نیاز به تعریف متد مجازی ندارند.
چرا که متد کلاس های abstract باید از نوع abstract تعریف شوند و هیچ بدنه ای در کلاس والد ندارند.
public abstract class Abstract1
{
public abstract void Show();
}
class MyClass:Abstract1
{
public override void Show()
{
Console.WriteLine("is override");
}
}
Comments (2)
دمت گرم داش
سپاس از لطف شما