چند شکلی (Polymorphism)

چند شکلی (Polymorphism):

 

چند شکلی به طور تکنیکی بدین معنی است که یک شی(thing) قابلیت دارد که شکل های مختلف به خود بگیرد.منظور از شی در جمله بالا یک متد می باشد. و منظور از شکل، رفتاری است که توسط آن متد انجام می شود.چند شکلی یعنی اینکه یک متد می تواند دارای رفتار های مختلف باشد.

ممکن است در ابتدا مفهوم چند شکلی گیج کننده باشد. اما این سر در گمی با یک مثال از دنیا واقعی می تواند، بطور کامل از بین برود. کلید روشن و خاموش کردن کامپیوتر خود را در نظر بگیرید، زمانیکه شما بخواهید کامپیوتر خود را روشن کنید دکمه را فشار می دهید و کامپیوتر روشن می شود. زمانیکه می خواهید کامپیوتر خود را خاموش کنید، دکمه را فشار می دهید و کامپیوتر خاموش می شود.

در مثال بالا متد فشار دادن کلید در شرایط مختلف، عملیات خاصی را انجام می دهد. این یعنی چند شکلی. یک مثال دیگر را بررسی می کنیم، تصور کنید که در یک فروشگاه به کالاها تخفيف داده می شود. اما برای انواع مختلف کالاها، نخفیف به روش متقاوتی محاسبه می شود. در این حالت ما یک متد تخفیف داریم اما در پیاده سازی نسبت به نوع کالا، عملیات متفاوتی را برای محاسبه تخفیف خواهیم داشت.

چند شکلی در اغلب موارد از طریق رابطه تعمیم(Generalization) پیاده سازی می شود.تصور کنید که یک سوپر کلاس به نام کالا داریم که دارای متدی به نام تخفیف می باشد. کلاس های مواد غذایی، پوشاک،کتاب و …  را در نظر بگیرید.این کلاس ها،زیر کلاس، کلاس کالا می باشند. که صفات و متد های آن را به ارث برده اند.اما نحوه محاسبه تخفیف در کلاس های مختلف با همدیگر متفاوت می باشد.در این حالت در هر زیر کلاس متد تخفیف نسبت به عملیاتی که باید انجام بدهد تا تخفیف را محاسبه کند باید بازنویسی شود اما با همان نام قبلی تخفیف.متد تخفیف در کلاس های مختلف معرف رفتار جداگانه ای هست اما تخت همان نام قبلی تخفیف.

1 comments on “چند شکلی (Polymorphism)

Comments are closed.