ما هو التحميل الزائد؟
عدّة طرق بنفس الاسم لكن بمعاملات مختلفة (عدد أو نوع) في نفس الصنف.
في Java/C++
class Calculator {
int add(int a, int b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
double add(double a, double b) { return a + b; }
}
المترجم يختار النسخة المناسبة حسب الوسائط.
في Python (بقيم افتراضية / *args)
Python لا تدعم التحميل الزائد التقليدي؛ نحاكيه:
class Calculator:
def add(self, *args):
return sum(args)
c = Calculator()
c.add(2, 3) # 5
c.add(2, 3, 4) # 9
التجاوز مقابل التحميل الزائد
| تجاوز (Override) | تحميل زائد (Overload) | |
|---|---|---|
| المكان | بين أب وابن | نفس الصنف |
| التوقيع | نفسه | مختلف (معاملات) |
| القرار | وقت التشغيل | وقت الترجمة |
🎯 التالي: this و super.