PDA

View Full Version : مبتدی: سوال در مورد ارث بری



akhavan_a
چهارشنبه 22 دی 1389, 10:38 صبح
سلام دوستان من در مفهوم ارث بری یک مشکل دارم اونم اینه :
فرض کنید FerrariSpider از Car ارث بری کرده است :


abstract class Car
{
private double _cost = -1; private string _desc = "abstract car.";

public virtual double Cost
{
get { return _cost; } } public virtual string Description
{
get { return _desc; }
}
}


class FerrariSpider:Car
{
double _cost = 250000;
string _description = "Ferrari Spider";

public override double Cost
{
get { return _cost;
}
}

public override string Description
{
get
{
return _description;
}
}
}

حالا مفهوم این خط رو متوجه نمی شم ؟؟؟؟:


Car car = new FerrariSpider();

abbas.oveissi
چهارشنبه 22 دی 1389, 10:54 صبح
سلام دوستان من در مفهوم ارث بری یک مشکل دارم اونم اینه :
فرض کنید FerrariSpider از Car ارث بری کرده است :


تا اونجایی که من میدونم کلاس ها reference type هستند،و شما با کد Car car یک آدرس حافظه درست میکنید که میتونید توی اون آدرس حافظه شی Car بذارید . حالا کد بالا به جای Car یه شیء از مشتق car یعنی FerrariSpider قرار داده،امیدوارم درست راهنمایی کرده باشم

tooraj_azizi_1035
چهارشنبه 22 دی 1389, 11:08 صبح
سلام،
در #C بحثی به نام Upcasting و Downcasting وجود داره که سوال شما راجع به این بحث می باشد.
Downcasting عمل تبدیل یک شیء پایه به شیء مشتق شده است و Upcasting عکس این عمل است.

در این لینک این مفهوم را به خوبی خواهید فهمید:

http://www.c-sharpcorner.com/UploadFile/pcurnow/polymorphcasting06222007131659PM/polymorphcasting.aspx

akhavan_a
چهارشنبه 22 دی 1389, 11:17 صبح
یعنی من با این کار دارم ferrari رو مساوی پدرش(Car) قرار می دم .... خوب این کار چه مزیتی داره؟ در چه مواردی استفاده می شه؟ ببینید متوجه می شم که الان car آبجکتی هست که هم property های ferrari رو داره هم car ولی خوب ارث بری هم همین مفهوم رو داره؟؟