+1 امتیاز
قبل در برنامه نویسی توسط (7.0هزار امتیاز)
ویرایش شده قبل توسط
polymorphism یا چندریختی یعنی چه و شامل چه حالات مختلفی می شود و چگونه پیاده سازی می شود؟

2 پاسخ

+4 امتیاز
قبل توسط (7.2هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

polymorphism یا چند ریختی به معنی این است که بتوانیم انواع مختلف داده را از طریق یک واسط دریافت و استفاده کنیم.

این منظور از 3 راه میسر می شود:

1. ad-hoc : این روش تغییر درسطح امضای متد ها یا عملگر ها می باشد که با اسم سربارگذاری با آن آشنا هستیم.

مثلا در جاوا تقریبا همه ما از دستور زیر برای چاپ در کنسول استفاده کرده ایم:

System.out.print(arg);

arg می توانید انواع مختلفی از جمله رشته یا عدد باشد و تنها به یک نوع خاص محدود نمی شود. این سربارگذاری تابع یا function overloading می باشد.

یا مثلا در جاوا عملگر + هم برای عدد بکار می رود و هم برای رشته که این oprator overloading می باشد که هر دوی اینها از نوع ad-hoc polymorphism می باشد.

2. parametric : در حقیقت در این نوع ما یک قالب آماده از کلاس را داریم که با دریافت پارامتر می توان به آن شکل داد. حس می کنم مطلب خود را خوب بیان نکردم!

افرادی که با برنامه نویسی شی گرا آشنایی دارند با مفهوم Generics سر و کار داشته اند. این مفهوم در اصل همان parametric polymorphism می باشد.

برای مثال می توان لیست ها در جاوا را نام برد. که در هنگام ایجاد پارامتر را به آن می دهیم.

List<JavabYabUser> users;

3. subtype : در اینجا یک مثال ساده که این روز ها خیلی کلیشه ای شده است استفاده می کنم! 

کلاغ، گنجشک، لک لک و .. همه پرنده هستند و خصیصه های یکسانی داند، این مشترکات را می توان در یک super class به اسم bird داشت و این پرندگان همگی subtype آن باشند.

در زبان جاوا می توان AbstractMap را نام برد که ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, IdentityHashMap, TreeMap, WeakHashMap پیاده سازی های مختلف آن می بشند.

0 امتیاز
قبل توسط (151 امتیاز)

می تونی به این سایت ها یه سر بزنی و مشکلتو حل کنی

سایت اول

سایت دوم

سوالات مشابه

0 امتیاز
1 پاسخ 705 بازدید
+2 امتیاز
1 پاسخ 438 بازدید
0 امتیاز
1 پاسخ 478 بازدید
0 امتیاز
2 پاسخ 979 بازدید
+1 امتیاز
1 پاسخ 4.2هزار بازدید
+1 امتیاز
2 پاسخ 907 بازدید
...