سوالاتی درباره ی مفاهیم شیء گرایی
سلام دوستان یه چند تا سوال درباره ی شیء گرایی داشتم
خدا رو شکر شیء گرایی رو فهمیدم و بسیار خوب متوجه شدم اما مفاهیم کپسوله سازی و چندریختگی کمی برام گنگ بود دوستان اگه کسی میتونه روشن و واضح بگه برای چی برخی ویژگی ها و رفتار های یک کلاس رو کپسوله می کنیم اصلا آیا جز ویژگی ها رفتارها(متدها) رو هم کپسوله می کنیم و از این دسته همچنین چندریختگی رو اصلا نمی فهمم ممنونم کمکم کنید
با تشکر
نقل قول: سوالاتی درباره ی مفاهیم شیء گرایی
مثالی در مورد polymorphism میزنم.
فرض کن یک جعبه داری که قراره توش میوه بریزی. مثلا سیب، هلو، زردآلود و ... آیا باید همه اینا رو من برات بشمرم و نام ببرم؟ نه. من میگم «میوه» و شما اوکی هستی باهاش. هر میوهای اومد میریزی توی جعبه. حالا اون «سیب» درسته وقتی میگه draw عکس سیب رو نشون میده، و هلو هم عکس هلو، اما نقش میوه رو هر دو دارن.
اگر به جعبه بگم «سیب» قبول کن، باید یه جعبه دیگه هم بسازم که «زردآلو» قبول کنه. و الی آخر. اما اگه بگم میوه قبول کن، همون یه بار کافیه.
مثل متدهامون:
void sort(List data)
به جای اینکه بزنی:
void sort(StringArrayList data)
void sort(IntegerArrayList data)
void sort(IntegerLinkedList data)