PDA

View Full Version : کلاس پایه و وراثت



ordebehesht
چهارشنبه 08 آذر 1391, 20:54 عصر
Plant[] plants = new Plant[]
{
new CarnivorousPlant{Name="Venus Fly Trap" , TrapType="Snap Trap"},
new CarnivorousPlant{Name="pitcher plant", TrapType="pitfal Trap"},
new CarnivorousPlant{Name="sundew", TrapType="FlayPaper trap"},
new CarnivorousPlant{Name="WaterWheel plant", TrapType="Snap Trap"},
};

من دوتا کلاس دارم که کلاس پایه من plant هستش و کلاس موروثی من carnivorouseplant هستش اگه ممنکه
کمی برام توضیح بدین نه اینکه هیچ ندونم مخوام بیشتر واضح تر مفهموم روش کد نویسی بالا رو بفهمم
به عبارتی چرا از کلاس به عنوان نوع مجموعه گرفته و بدون نمونه سازی کلاس موروثیم اونو مقدار دهی کرده ممنون

saied_hacker
چهارشنبه 08 آذر 1391, 21:18 عصر
من خط اخر رو درست نفهمیدم اما همونجوری که خودت گفتی carnivorouseplant از plant هستش و اومده یه ارایه چهارتایی ازش ساخته و عناصر رو که همون کلاس carnivorouseplant رو توش ریخته.

با این کد هم که داره از carnivorouseplant نمونه سازی میکنه دیگه:
new CarnivorousPlant{Name="Venus Fly Trap" , TrapType="Snap Trap"},

هر کلاس میتونه به کلاس بالاتر از خودش تبدیل ( TypeCast ) بشه.

r_s1389@yahoo.com
پنج شنبه 09 آذر 1391, 00:01 صبح
Plant[] plants = new Plant[]
{
new CarnivorousPlant{Name="Venus Fly Trap" , TrapType="Snap Trap"},
new CarnivorousPlant{Name="pitcher plant", TrapType="pitfal Trap"},
new CarnivorousPlant{Name="sundew", TrapType="FlayPaper trap"},
new CarnivorousPlant{Name="WaterWheel plant", TrapType="Snap Trap"},
};

من دوتا کلاس دارم که کلاس پایه من plant هستش و کلاس موروثی من carnivorouseplant هستش اگه ممنکه
کمی برام توضیح بدین نه اینکه هیچ ندونم مخوام بیشتر واضح تر مفهموم روش کد نویسی بالا رو بفهمم
به عبارتی چرا از کلاس به عنوان نوع مجموعه گرفته و بدون نمونه سازی کلاس موروثیم اونو مقدار دهی کرده ممنون

شما د واقع دارین تو خط اول یک آرایه درست میکنین از نوع کلاس پایه (مگه آرایه نمیتونه از نوع int , string , ......... باشه این جا هم نوع آرایه ات plant i هستش) و در خط بعد هم داری carnivorouseplant نمونه سازی میکنه
اما و داری مقدار آرایه رو با اون ها پر میکنی
البته به این پر کردن آرایه مشکوکم چون وقتی داری مقدار میدی به آرایه باید طول آرایه معلوم باشه اما چون شما طول آرایه را مشخص نکردین مثل اینکه
int[] x={10,11,12};
جوری دارین مقدار میدین و تو این روش نیازی نیست که یک new درست کنید چون کامپایلر خطا میده اگه اشتباه نکنم