Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

بايثونطريقة تعريف كلاس مجرد يرث من كلاس مجرد

في المثال التالي قمنا بتعريف كلاس مجرّد إسمه A وضعنا فيه دالة مجرّدة إسمها m1.
بعدها قمنا بتعريف كلاس مجرّد إسمه B يرث من الكلاس A و وضعنا فيه دالة مجرّدة إسمها m2.
بعدها قمنا بتعريف كلاس عادي إسمه C يرث من الكلاس B و يفعل Override للدالتين m1() و m2().
في الأخير قمنا بإنشاء كائن من الكلاس C و استدعاء كلا الدالتين منه.

مثال

A.py
# حتى نستطيع استخدامهما abc الموجودين في الموديول @abstractmethod و الكلمة ABC هنا قمنا بتضمين الكلاس
from abc import ABC, abstractmethod
# حتى يصبح كلاس مجرّد ABC و جعلناه يرث من الكلاس A هنا قمنا بإنشاء كلاس إسمه
class A(ABC):
# m1 هنا قمنا بتعريف دالة مجردة و فارغة إسمها
@abstractmethod
def m1(self):
pass
# حتى نستطيع استخدامهما abc الموجودين في الموديول @abstractmethod و الكلمة ABC هنا قمنا بتضمين الكلاس from abc import ABC, abstractmethod # حتى يصبح كلاس مجرّد ABC و جعلناه يرث من الكلاس A هنا قمنا بإنشاء كلاس إسمه class A(ABC): # m1 هنا قمنا بتعريف دالة مجردة و فارغة إسمها @abstractmethod def m1(self): pass
B.py
# حتى نستطيع الوراثة منه A حتى نستطيع تعريف دالة مجرّدة + الكلاس @abstractmethod هنا قما بتضمين الكلمة
from abc import abstractmethod
from A import A
# m1() حتى يصبح كلاس مجرّد و يحتوي على الدالة ABC الذي بدوره يرث من الكلاس A و جعلناه يرث من الكلاس B هنا قمنا بإنشاء كلاس إسمه
class B(A):
# m2 هنا قمنا بتعريف دالة مجردة و فارغة إسمها
@abstractmethod
def m2(self):
pass
# أيضاَ A من الكلاس m1() ورث الدالة المجردة B لا تنسى أن الكلاس
# حتى نستطيع الوراثة منه A حتى نستطيع تعريف دالة مجرّدة + الكلاس @abstractmethod هنا قما بتضمين الكلمة from abc import abstractmethod from A import A # m1() حتى يصبح كلاس مجرّد و يحتوي على الدالة ABC الذي بدوره يرث من الكلاس A و جعلناه يرث من الكلاس B هنا قمنا بإنشاء كلاس إسمه class B(A): # m2 هنا قمنا بتعريف دالة مجردة و فارغة إسمها @abstractmethod def m2(self): pass # أيضاَ A من الكلاس m1() ورث الدالة المجردة B لا تنسى أن الكلاس

C.py
# حتى نستطيع الوراثة منه 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')
# حتى نستطيع الوراثة منه 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')
Test.py
# حتى نستطيع إنشاء كائن منه ChildClass هنا قمنا بتضمين الكلاس
from C import C
# obj إسمه C هنا قمنا بإنشاء كائن من الكلاس
obj = C()
# obj هنا قمنا باستدعاء كلا الدالتين الموجودتين في الكائن
obj.m1()
obj.m2()
# حتى نستطيع إنشاء كائن منه ChildClass هنا قمنا بتضمين الكلاس from C import C # obj إسمه C هنا قمنا بإنشاء كائن من الكلاس obj = C() # obj هنا قمنا باستدعاء كلا الدالتين الموجودتين في الكائن obj.m1() obj.m2()

نتيجة تشغيل الملف Test.

m1 content is written in the class c
m2 content is written in the class c