بايثون - الوراثة
مفهوم الوراثة
الوراثة ( Inheritance ) تعني تضمين محتوى كلاس في كلاس آخر.
في بايثون، الكلاس يمكنه أن يرث من كلاس آخر و بالتالي يحصل على جميع الدوال و المتغيرات الموجودة فيه.
الوراثة يمكن الإستفادة منها للحد من تكرار الكود، فمثلاً إذا كنت تريد إنشاء كلاس جديد و كان لديك كلاس جاهز يحتوي على متغيرات و دوال تحتاج أن تكتبها فيه، فيمكنك جعل الكلاس يرثها كما هي بدلاً من إعادة تعريفها فيه، و بعدها يمكنك إستخدام جميع المتغيرات و الدوال التي ورثها الكلاس الجديد من الكلاس الجاهز.
مفهوم الكلاس الأب و الكلاس الإبن
- الكلاس الذي يرث من كلاس آخر يعتبر بمثابة إبن له لذلك يقال له Subclass أو Derived class أو Extended class أو Child class.
- الكلاس الذي يوّرث محتوياته لكلاس آخر يعتبر بمثابة أب له لذلك فيقال له Superclass أو Base class أو Parent class.
ما يرثه الكلاس الإبن من الكلاس الأب
إفتراضياً، الكلاس الإبن يرث كل الخصائص و الدوال الموجودة في الكلاس الأب ما عدا الخصائص التي يتم تعريفها فيه كباراميترات في الدالة __init__() فيه لأن هذه الدالة يتم إستدعاؤها عند إنشاء كائن منه و ليس عند وراثته.
الكلاس الإبن يمكنه استدعاء الدالة __init__() الموجودة في الكلاس الأب بواسطة الدالة super() التي سنتعرف عليها لاحقاً.
جاهز لرحلة التحدي؟
قم بتوليد تمارين لا نهائية بشكل تدريجي (10 في كل مرة) بناءً على هذا الدرس. كل تمرين مصمم لرفع مستوى تفكيرك المنطقي.