الاستبدال (Overriding) ودالة super()
استبدال الدوال (Method Overriding)
إذا عرفت الفئة الابن دالة لها نفس الاسم تماماً كدالة في الفئة الأب، فسيتم تنفيذ دالة الابن بدلاً منها. يسمى هذا بـ Method Overriding.
في المثال السابق، قامت Dog و Cat باستبدال الدالة العامة Animal.speak().
دالة super()
غالباً ما تحتاج الفئة الفرعية لتشغيل نسخة الفئة الأب من الدالة (خاصة __init__) قبل أو بعد إضافة الكود الخاص بها. تمنحك super() إمكانية الوصول لدوال الفئة الأب.
python class Person: def init(self, name, age): self.name = name self.age = age print("Person initialized.")
class Employee(Person): def init(self, name, age, employee_id):
# 1. استدعاء منشئ الأب باستخدام super()
# هذا يتعامل مع تهيئة 'name' و 'age'
super().__init__(name, age)
# 2. إضافة خصائص محددة للفئة الفرعية
self.employee_id = employee_id
print("Employee initialized.")
def get_info(self):
return f"{self.name} ({self.age}), ID: {self.employee_id}"
manager = Employee('Alice', 45, 'E450') print(manager.get_info())