پایتون

جلسه ۵۳: Polymorphism چیست؟ در پایتون

در این درس شما با مفاهیم Polymorphism یا چندریختی به عنوان یکی از اجزای مهم OOP آشنا خواهید شد.

تعریف

(کلمه Polymorphism بر اساس دو کلمه یونانی Poly یعنی زیاد و کلمه morph یعنی فرم‌ها ساخته شده است(چندفرمی یا چندریختی))

در برنامه نویسی، Polymorphism مربوط میشود به اشیائی که فرم‌ها و رفتارهای مختلفی از خود نشان میدهند.

به عنوان مثال، کلاس شکل را در نظر بگیرید. شما میتوانید هر شکلی داشته باشید. میتواند مستطیل، دایره، چندوجهی یا لوزی باشد. همه این ها شکل هستند اما خصوصیات آن‌ها متفاوت است. این موضوع Polymorphism نام دارد.

مقدمه‌ای کوتاه

کلاس parent ای با نام shapeو کلاس‌های child با نام‌های Rectangle Circle Polygon و Diamond را در نظر بگیرید.

حال فرض کنید برنامه‌ی شما باید متدی داشته باشد که مساحت هر یک از شکل‌ها را محاسبه کند. البته مساحت هر شکل طبیعتا متفاوت محاسبه میشود. بنابراین شما یک پیاده‌سازی یکسان ندارید. شما میتوانید متدهای جدایی در هر کلاس برای اینکار بنویسید، به عنوان مثال getSquareArea یا getCircleArea. اما این کار، یادآوری نام های متدها را برای ما سخت میکند. خیلی خوب میشود اگر برای همه شکل‌ها ما یک نام متد به عنوان مثال getArea داشته باشیم!

همه چیز را با Polymorphism ساده کنید

در این حالت شما نیاز است فقط نام یک متد را به یاد آورید. در اینصورت متدی که مربوط به آن شی است فراخوانی میشود. این موضوع با استفاده از Polymorphism در برنامه نویسی شی‌گرا پیاده‌سازی میشود. کلاس پایه یک تابع getArea، البته بدون پیاده‌سازی، خواهد داشت. هر کلاسی که از این کلاس ارث بری کند، تابع را به ارث میبرد و میتواند پیاده‌سازی خود را داشته باشد.

درنظر بگیرید که کلاس shape یک متدی به نام getArea دارد، که توسط همه زیرکلاس‌ها به ارث برده شده‌است. با استفاده از Polymorphism هر زیر کلاس پیاده‌سازی مخصوص خود را خواهد داشت. بنابراین اگر متد getArea توسط یک شی Rectangle فراخوانی شود، متد مساحت Rectangle را به ما خواهد داد. به عبارت دیگر، همان متد اگر توسط یک شی از کلاس Circle فراخوانی شود، مقدار مساحت دایره در این حالت محاسبه خواهد شد.

Polymorphism به دنبال چه چیزی است؟

درواقع Polymorphism کار توسعه‌دهنده را کاهش میدهد. وقتی توسعه دهنده میخواهد زیرکلاس‌هایی با ویژگی‌ها و عملکردهای مخصوص خود بسازد، میتواند کد را فقط در قسمت‌هایی که با بقیه متفاوت است، تغییر دهد و پیاده‌سازی کند.

اکنون، شما یاد گرفتید که Polymorphism چیست. در درس آینده یادخواهید گرفت که چگونه میتوان Polymorphism را در OOP پیاده‌سازی کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا