ملخص الفصل

13.6 ملخص الفصل

من أبرز ما جاء في هذا الفصل:

  • تصف الوراثة علاقة "هو-أ" بين الأصناف. يرث صنف واحد، وهو الصنف الفرعي، من صنف آخر، وهو الصنف الأساسي.
  • يمكن للأصناف الفرعية الوصول إلى السمات والتوابع الموروثة مباشرةً.
  • يمكن للأصناف الفرعية إعادة تعريف توابع الصنف الأساسي لتغيير الوظائف أو إضافتها.
  • super() يسمح للصنف الفرعي بالوصول إلى توابع الصنف الأساسي.
  • تعدد الأشكال يصف تمثيلاً واحدًا لأشكال متعددة ويُطبق في بايثون لتعريف توابع متعددة بالاسم نفسه والسماح للتابع نفسه بقبول وسائط مختلفة.
  • الوراثة الهرمية نوع من الوراثة ترث فيه أصناف متعددة من صنف أساسي واحد.
  • الوراثة المتعددة نوع من الوراثة يرث فيه صنف واحد من أصناف متعددة.
  • تُستخدم أصناف mixin في الوراثة المتعددة لإضافة وظائف إلى صنف فرعي دون إضافة اعتبارات الوراثة.

في هذه المرحلة، ينبغي أن تكون قادرًا على كتابة أصناف فرعية ترث سمات المثيل وتوابعها، وأصناف فرعية لها سمات فريدة وتوابع معاد تعريفها. ينبغي أن تكون قادرًا أيضًا على إنشاء علاقات وراثة هرمية وعلاقات وراثة متعددة بين الأصناف.

المهمة مثال
تعريف صنف فرعي
class SuperClass:
  pass

class SubClass(SuperClass):
  pass

تعريف __init__() لصنف فرعي باستخدام super()

class SubClass(SuperClass):
  def __init__(self):
    super().__init__() # تستدعي __init__() للصنف الأساسي
    # تهيئة سمات مثيل الصنف الفرعي
إعادة تعريف تابع لصنف أساسي
class SuperClass:
  def display(self):
    print('Superclass method')

class SubClass(SuperClass):
  def display(self): # الاسم نفسه لتابع الصنف الأساسي
    print('Subclass method')
تطبيق الوراثة الهرمية
class SuperClass:
  def display(self):
    print('Superclass method')

class SubClass1(SuperClass):
  def display(self):
    print('Subclass 1 method ')
class SubClass2(SuperClass):
  def display(self):
  print('Subclass 2 method')

class SubClass3(SuperClass):
  def display(self):
    print('Subclass 3 method')
تطبيق الوراثة المتعددة
class SuperClass1:
    pass

class SuperClass2:
    pass

class SubClass(SuperClass1, SuperClass2):
    pass
جدول 13.2 مرجع الفصل 13.