به شکل زیر توجه کنید.این تصویر دارای اشکال مختلفی است که هرکدام دارای فرمول خاص خود در محاسبه مساحت و محیط هستند.
این تفاوت فرمول باعث می شود که در هر شکل متد خود را با توجه به فرمول آن بارنویسی و طراحی کنیم.
اما دو خصوصیت بین همه آنها مشترک است و آن نام شکل و رنگ شکل است.
این تصویر گویای حالت polymorphism است.

برای شروع و تعریف خصوصیات نام شکل و رنگ از کلاس abstract به نام Shape استفاده می کنیم.همچنین متدی به نام getInfo ایجاد می کنیم که وظیفه آن بازگشت اطلاعات شکل است.

مثال:

برای فرمول ها نیز متد مشترک getEnviroment و getAre را بدون بدنه در داخل کلاس CallMethods بصورت interface تعریف می کنیم و در کلاس های مخصوص که ارث بری می کنند آنها را بازنویسی می کنیم.

مثال:

حال برای هر شکل کلاس خود را ایجاد و از کلاس abstract و interface ارث بری می کنیم.
کلاس مربوط به مستطیل:

حال هر شکل دارای خصوصیات مخصوص خود است برای مثال مستطیل دارای طول و عرض است پس در کلاس خودش این خصوصیات را تعریف می کنیم.

مثال:

حال تابع سازنده را در شکل ایجاد می کنیم.این تابع سازنده تنظیم کننده طول و عرض و رنگ و نام شکل است.

مثال:

حال متدهای محاسبه مساحت و محیط را درون کلاس مستطیل بازنویسی می کنیم.

مثال:

 

طراحی کلاس دایره:

 

طراحی کلاس مربع:

 

طراحی کلاس مثلث:

 

استفاده از کلاس های ساخته شده و ساخت شی

در اینجا پس از ساخت کلاس های اشکال مختلف تصمیم به ساخت شی برای هریک می کنیم.

ساخت شی مستطیل:

 

ساخت شی دایره:

 

ساخت شی مربع:

 

ساخت شی مثلث:

 

مثال نهایی پیاده سازی کلاس با روش interface, abstract و final:

دیدگاه خود را بیان کنید

این ایمیل برای عموم منتشر نمی شود