کد زیر رو بدون اجرا دنبال کن. حلقه هر بار همون پیام label() رو به شیء میفرسته، اما متد متناسب با کلاس همون شیء انتخاب میشه. به این رفتار چندریختی میگن: یک متد همنام، بسته به نوع شیء، کار متفاوتی انجام میده.
class Task:
def label(self):
return "کار"
class UrgentTask(Task):
def label(self):
return super().label() + " فوری"
items = [Task(), UrgentTask()]
for item in items:
print(item.label())
فعالیت شما
خروجی رو با درنظرگرفتن override و super پیشبینی کن.