PDA

View Full Version : سوال: Override Methods in c#.NET



m_ali_gho
یک شنبه 03 شهریور 1392, 15:45 عصر
سلام دوستان
کسی در مورد متد Override اطلاعاتی داره؟
میشه بفرمائید وقتی یک متد یا هر چیزی رو به صورت override تعریف یا طراحی میکنیم چه اتفاقی می افته؟
به طور کلی چی هستش و چی کار میکنه؟
اگه مثالی هم دارین برای درک بهتر مساله اگه میشه بیانش کنید.
چند جا دیدم یه سری توضیحات در موردش بدن اما دقیقا درک نکردم منظورشون چیه.

esafb52
یک شنبه 03 شهریور 1392, 15:59 عصر
بله کتاب آقای هاشمیان صفحه 363 به بعد رو مطالعه کنید

lastmory
یک شنبه 03 شهریور 1392, 16:09 عصر
سلام ، وقتی کلاست از یه کلاس دیگه مشتق شده یعنی کلاست یه کلاس دیگه رو به ارث برده ، یعنی کلاست فرزند یه کلاس دیگه هستش
کلاس فرزند تمام متدها و خصوصیات کلاس پدر رو به ارث میبره ، حالا به طور مثال اگر توی کلاس پدر یه متد باشه یا یه روال باشه که یه کاری رو انجام میده ، و شما میخوای همون روال یا متد برات در کلاس فرزند ، یه رفتار دیگه داشته باشه به شرط اینکه هر دوشون هم نام باشن ، این داستان رو بهش میگن override کردن و یکی از خصوصیات شی گرایی هستش
این هم یه نمونه
http://www.codeproject.com/Articles/18734/Method-Overriding-in-C

m_ali_gho
یک شنبه 03 شهریور 1392, 16:31 عصر
خیلی ممنون. تو این سایت codeprojet هم که میریم هر چی هندی هستش ریختن اونجا البته تا حدودی میدونم که هندی برنامه نویس های خوبی هستن , ...
دوستمون هم که کتاب آقای هاشمیان رو معرفی کردن باعث شد تا سوال بعدی رو که در مورد Virtual بو رو هم جواب بگیرم. حالا فقط کلاسهایی که خودمون نوشتیم رو میتونیم چنین امکاناتی بهشون بدیم یا کلاسها و متد هایی که تو خود C# هستن هم امکان Overriding رو دارن؟ مثلا ToString() یا ...

esafb52
یک شنبه 03 شهریور 1392, 17:02 عصر
نه
بله مثلا میشه متد tostring رو اورراید کنید

ahmadreza517
یک شنبه 03 شهریور 1392, 21:53 عصر
سلام

بله میشه :




class Program
{
static void Main(string[] args)
{
car c = new car();
Console.WriteLine(c.ToString());

SportCar s = new SportCar();
Console.WriteLine(s.ToString());

Console.Read();
}


}

class car
{

}

class SportCar
{
public override string ToString()
{
//return base.ToString();
return "SportCar";
}
}