• 0

ماذا يعني تعدد الأشكال Polymorphism ولم يستخدم؟

أقرأ منذ فترة عن البرمجة غرضية التوجه OOP ومفاهيمها ومر معي مفهوم تعدد الأشكال Polymorphism ومازال المفهوم لدي غير واضح ولا اعلم متى يجب استخدامه ولماذا؟

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

تعني Polymorphism قدرة الغرض أو الكائن object على أن يأخذ عدة أشكال. الاستخدام الأكثر شيوعًا للـ Polymorphism في البرمجية غرضية التوجه يحدث عندما يُستخدم صف أب parent class للإشارة إلى صف يرث منه child class. أي غرض يمكنه اجتياز أكثر من اختبار علاقة IS-A يعتبر غرض متعدد الأشكال Polymorphism ونرى هذا بشكل واضح جدًا في بنية صفوف لغة جافا.

تعني علاقة IS-A ان الصف الابن child class ينتمي للصف الذي يرث منه وكذلك الصف الذي يرث منه قد يرث من صف آخر وينتمي إليه أيضًا أو يرث من صفين ينتمي لهما معًا (نجد هذا بشكل واضح في لغة جافا بعلاقة الـ interface و الـ class).

مثال من الواقع يُعتبر الغزال حيوان عاشب أي أنه ينتمي إلى الحيوانات العاشبة وكذلك يعتبر من فصيلة الحيوانات بشكل عام سواء أكانت عاشبة أم لاحمة.. الخ. إذا أسقطنا هذا المثال على البرمجة نجد:

public interface Vegetarian{}
public class Animal{}
public class Deer extends Animal implements Vegetarian{}
  • A Deer IS-A Animal
  • A Deer IS-A Vegetarian
  • A Deer IS-A Deer

مثال آخر على تعدد الأشكال Polymorphism تخيل معي الأشكال التالية: (مستطيل، مربع، مثلث، شكل سداسي..الخ) أليست تنتمي إلى فئة واحدة وهي المضلعات؟ أي أن جميع هذه الأشكال هي مضلع وتختلف بعدد أضلاعها.

إذًا يمكننا إنشاء صف polygon ونجعل الصفوف التي تحدد الأشكال ترث منه ومن ثم نستخدم المرجع reference من الصف polygon لإنشاء غرض object من أي نوع من تلك الأشكال:

Polygon p = new Rectangle();
or
Polygon p = new Triangle()
....

polymorphism.thumb.png.76da317b0173c1ab7

ماذا يعني تعدد الأشكال Polymorphism ولم يستخدم؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن