بايثونطريقة تعريف كلاس مجرد يرث من كلاس مجرد
في المثال التالي قمنا بتعريف كلاس مجرّد إسمه A
وضعنا فيه دالة مجرّدة إسمها m1
.
بعدها قمنا بتعريف كلاس مجرّد إسمه B
يرث من الكلاس A
و وضعنا فيه دالة مجرّدة إسمها m2
.
بعدها قمنا بتعريف كلاس عادي إسمه C
يرث من الكلاس B
و يفعل Override للدالتين m1()
و m2()
.
في الأخير قمنا بإنشاء كائن من الكلاس C
و استدعاء كلا الدالتين منه.
مثال
# حتى نستطيع استخدامهما abc الموجودين في الموديول @abstractmethod و الكلمة ABC هنا قمنا بتضمين الكلاس from abc import ABC, abstractmethod # حتى يصبح كلاس مجرّد ABC و جعلناه يرث من الكلاس A هنا قمنا بإنشاء كلاس إسمه class A(ABC): # m1 هنا قمنا بتعريف دالة مجردة و فارغة إسمها def m1(self): pass
# حتى نستطيع الوراثة منه A حتى نستطيع تعريف دالة مجرّدة + الكلاس @abstractmethod هنا قما بتضمين الكلمة from abc import abstractmethod from A import A # m1() حتى يصبح كلاس مجرّد و يحتوي على الدالة ABC الذي بدوره يرث من الكلاس A و جعلناه يرث من الكلاس B هنا قمنا بإنشاء كلاس إسمه class B(A): # m2 هنا قمنا بتعريف دالة مجردة و فارغة إسمها def m2(self): pass # أيضاَ A من الكلاس m1() ورث الدالة المجردة B لا تنسى أن الكلاس
# حتى نستطيع الوراثة منه B.py الموجود في الملف B هنا قمنا بتضمين الكلاس from B import B # لجميع الدوال المجرّردة التي ورثها Override و بالتالي أصبح هذا الكلاس مجبراً على أن يفعل B يرث من الكلاس C هنا قمنا بتعريف كلاس إسمه class C(B): # m1() للدالة Override هنا فعلنا def m1(self): print('m1 content is written in the class c') # m2() للدالة Override هنا فعلنا def m2(self): print('m2 content is written in the class c')
# حتى نستطيع إنشاء كائن منه ChildClass هنا قمنا بتضمين الكلاس from C import C # obj إسمه C هنا قمنا بإنشاء كائن من الكلاس obj = C() # obj هنا قمنا باستدعاء كلا الدالتين الموجودتين في الكائن obj.m1() obj.m2()
نتيجة تشغيل الملف Test
.
m2 content is written in the class c