چندریختی (Python Polymorphism)
چندریختی: یک نام، چندین رفتار (Polymorphism) 🎭🌈
واژه "چندریختی" به معنای داشتن "اشکال مختلف" است. در برنامهنویسی، چندریختی به اشیائی از کلاسهای مختلف اجازه میدهد تا از طریق یک واسط (Interface) یکسان عمل کنند.
۱. چندریختی در کلاسها
چندریختی اغلب در مورد متدهایی استفاده میشود که در کلاسهای مختلف نام یکسانی دارند اما کارهای متفاوتی انجام میدهند.
class Car:
def move(self):
print("Drive!")
class Boat:
def move(self):
print("Sail!")
# هر دو کلاس متد move دارند
اکنون میتوانید یک حلقه بنویسید که بدون توجه به نوع کلاس، متد move() را صدا بزند.
۲. چندریختی در ارثبری
این مفهوم زمانی قدرتمندتر میشود که کلاسهای فرزند، متدهای کلاس والد را بازنویسی (Override) کنند. مثلاً یک کلاس والد "شکل" متد area() دارد، اما کلاس "دایره" و "مربع" هر کدام فرمول متفاوتی برای محاسبه مساحت (Area) در آن متد پیاده میکنند.
len() در پایتون یک مثال عالی از چندریختی است. این تابع برای رشتهها تعداد حروف را باز میگرداند، اما برای لیستها تعداد آیتمها را. یک تابع واحد، رفتارهای متفاوت بر اساس ورودی!
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
کدام تابعِ توکار پایتون مثالی از چندریختی است که میتواند طولِ هم رشتهها و هم لیستها را برگرداند؟ (فقط نام تابع را بنویسید).
len
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.