تخطَّ إلى المحتوى

🧩 شرح البرمجة كائنية التوجّه

تجاوز الطرق (Overriding)

الدرس 16 من 25· ⏱ 1 دقائق قراءة

ما هو التجاوز؟

الابن يعيد تعريف طريقة موروثة من الأب بسلوك خاصّ به.

class Animal:
    def sound(self):
        return "صوت عامّ"

class Dog(Animal):
    def sound(self):              # تجاوز
        return "نباح"

print(Dog().sound())   # نباح

استدعاء نسخة الأب

class Cat(Animal):
    def sound(self):
        base = super().sound()    # استدعاء الأب
        return base + " - مواء"

في Java (مع @Override)

class Dog extends Animal {
    @Override
    String sound() { return "نباح"; }
}

@Override اختياري لكنه يكشف الأخطاء (لو لم تطابق التوقيع).

شروط التجاوز

  • نفس اسم الطريقة وتوقيعها (المعاملات).
  • يحدث بين أب وابن (وراثة).

التجاوز أساس تعدّد الأشكال

بفضله، استدعاء animal.sound() ينفّذ نسخة النوع الفعلي.

🎯 التالي: التحميل الزائد.

هل كان هذا الدرس مفيدًا؟