نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
PY

منهج Python

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج Python/الوراثة وتطوير الفئات (Inheritance)

الوراثة وتطوير الفئات (Inheritance)

inheritance pythonالوراثة pythonpython inheritancesuper python

الشرح

## الوراثة (Inheritance)

تسمح للـ Class بأن ترث خصائص وأساليب Class أخرى.

### المصطلحات: - **Parent/Base Class**: الفئة الأصل - **Child/Derived Class**: الفئة المشتقة - **super()**: للوصول إلى دوال الأصل

### الفائدة: - إعادة الاستخدام: لا تكرار الكود - التوسع: إضافة أو تعديل السلوك - التنظيم: علاقات "is-a" واضحة

### أنواع الوراثة: - **Single**: من أب واحد - **Multiple**: من آباء متعددين - **Multilevel**: سلسلة وراثة

الصياغة (Syntax)

syntax
1# Parent Class
2class Animal:
3 def __init__(self, name, age):
4 self.name = name
5 self.age = age
6
7 def breathe(self):
8 return f"{self.name} يتنفس"
9
10 def __str__(self):
11 return f"{self.name} ({self.age} سنوات)"
12
13# Child Class
14class Dog(Animal):
15 def __init__(self, name, age, breed):
16 super().__init__(name, age) # استدعاء أب
17 self.breed = breed
18
19 def bark(self):
20 return f"{self.name} يقول: هاو!"
21
22dog = Dog("ريكس", 3, "لابرادور")
23print(dog) # يرث __str__
24print(dog.breathe()) # يرث breathe
25print(dog.bark()) # خاص به

أمثلة عملية

مثال 1: وراثة متعددة المستويات

وراثة متعددة المستويات
1class Shape:
2 def area(self):
3 return 0
4
5class Rectangle(Shape):
6 def __init__(self, width, height):
7 self.width = width
8 self.height = height
9
10 def area(self):
11 return self.width * self.height
12
13class Square(Rectangle):
14 def __init__(self, side):
15 super().__init__(side, side) # مربع: عرضه = ارتفاعه
16
17shapes = [Rectangle(4, 6), Square(5)]
18for shape in shapes:
19 print(f"{type(shape).__name__}: المساحة = {shape.area()}")

نصائح احترافية

  • —**نصائح الوراثة:**
  • —استخدم `super()` بدلاً من اسم الأب مباشرة للمرونة
  • —`isinstance(obj, Class)` للتحقق من نوع الكائن
  • —`issubclass(Child, Parent)` للتحقق من العلاقة
  • —تجنب وراثة عميقة جداً - أكثر من 3 مستويات يصعب الفهم

الدرس السابق

دالة البناء والكلمة المحجوزة self (The __init__ method)

الدرس التالي

تعدد الأشكال (Polymorphism)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر