پلیمورفیسم چیست و چه کاربردی دارد
خلاصه
1404/05/25
## پلیمورفیسم (Polymorphism) چیست؟ پلیمورفیسم در لغت به معنای "چند شکلی" یا "چند ریختی" است. در برنامهنویسی شیءگرا (OOP)، پلیمورفیسم به توانایی یک موجودیت (مانند یک شیء، ت

## پلیمورفیسم (Polymorphism) چیست؟
پلیمورفیسم در لغت به معنای "چند شکلی" یا "چند ریختی" است. در برنامهنویسی شیءگرا (OOP)، پلیمورفیسم به توانایی یک موجودیت (مانند یک شیء، تابع، یا متد) برای اتخاذ اشکال مختلف اشاره دارد. به عبارت دیگر، یک نام میتواند به رفتارهای مختلفی اشاره کند.
پلیمورفیسم یک مفهوم اساسی در OOP است که به برنامه نویسان اجازه میدهد تا کدهای انعطافپذیر، قابل نگهداری و قابل گسترش بنویسند.
**به زبان ساده:** تصور کنید یک دکمه دارید. بسته به جایی که این دکمه را میبینید، عملکردهای مختلفی خواهد داشت: در آسانسور برای رفتن به یک طبقه، در یک بازی برای پرش، و در یک برنامه برای ذخیره فایل. این همان مفهوم پلیمورفیسم است: یک نام واحد (دکمه) بسته به زمینه، رفتارهای مختلفی دارد.
## انواع پلیمورفیسم
پلیمورفیسم به طور کلی به دو نوع اصلی تقسیم میشود:
1. **پلیمورفیسم در زمان کامپایل (Compile-time Polymorphism) یا پلیمورفیسم استاتیک:** این نوع پلیمورفیسم در زمان کامپایل تعیین میشود که کدام متد باید فراخوانی شود. دو شکل اصلی آن عبارتند از:
* **سربارگذاری (Overloading):** زمانی رخ میدهد که چندین متد با نام یکسان در یک کلاس وجود داشته باشند، اما لیست پارامترهای متفاوتی (تعداد، نوع، یا ترتیب پارامترها) داشته باشند. کامپایلر بر اساس پارامترهای ارسالی، متد مناسب را انتخاب میکند.
* **قالبها (Templates) / جنریکها (Generics):** در زبانهایی مانند C++ و Java، قالبها یا جنریکها به شما اجازه میدهند کلاسها و متدهایی بنویسید که با انواع دادههای مختلف کار میکنند بدون اینکه نیاز باشد کدهای مشابه را برای هر نوع تکرار کنید.
2. **پلیمورفیسم در زمان اجرا (Runtime Polymorphism) یا پلیمورفیسم پویا:** این نوع پلیمورفیسم در زمان اجرا تعیین میشود که کدام متد باید فراخوانی شود. این کار معمولاً از طریق وراثت و بازنویسی (Overriding) متدها انجام میشود.
* **بازنویسی (Overriding):** زمانی رخ میدهد که یک کلاس فرزند، یک متد را که از کلاس والد خود به ارث برده است، دوباره پیادهسازی کند. در این حالت، متد کلاس فرزند جایگزین متد کلاس والد میشود. در زمان اجرا، بر اساس نوع واقعی شیء، متد مناسب فراخوانی میشود.
## کاربردهای پلیمورفیسم
پلیمورفیسم کاربردهای گستردهای در برنامهنویسی شیءگرا دارد که از جمله آنها میتوان به موارد زیر اشاره کرد:
* **انعطافپذیری و قابلیت گسترش:** پلیمورفیسم به شما اجازه میدهد تا بدون نیاز به تغییر کدهای موجود، کلاسهای جدیدی اضافه کنید و رفتار برنامه را گسترش دهید.
* **کاهش وابستگی (Decoupling):** پلیمورفیسم به کاهش وابستگی بین کلاسها کمک میکند. این امر باعث میشود تا تغییر یک کلاس، تأثیر کمتری بر سایر کلاسها داشته باشد.
* **قابلیت استفاده مج
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- مفهوم وراثت در OOP چیست
- کلاس و شی در برنامهنویسی شیءگرا چه مفهومی دارند
- چه تفاوتی بین متغیرهای محلی و سراسری وجود دارد
- مفهوم JSON و کاربرد آن در انتقال داده چیست
- تفاوت بین REST و SOAP در طراحی API چیست
- Nodejs چگونه کار میکند
- تفاوت بین Java و Kotlin در توسعه اپ موبایل چیست
- جاوا اسکریپت چه نقشی در توسعه وب دارد
- زبان Python در چه حوزههایی کاربرد دارد
- تفاوت زبان برنامهنویسی C و C چیست
- Continuous Integration چه مزایایی دارد
- نقش واحد تست Unit Test در توسعه نرمافزار چیست
- خطای منطقی در برنامهنویسی چیست
- چه تفاوتی بین کامپایلر و مفسر وجود دارد
- الگوهای طراحی نرمافزار Design Patterns کداماند
- اصول کدنویسی تمیز Clean Code چیست