جافاسكربتتعدد الأشكال
- مفهوم تعدد الأشكال
- تطبيق مبدأ تعدد الأشكال
- تطبيق مبدأ تعدد الأشكال مع المصفوفات
مفهوم تعدد الأشكال
تعدد الأشكال أو بوليمورفيزم ( Polymorphism ) هو مجرد أسلوب في كتابة الكود يقصد منه بناء دالة تنفذ أوامر مختلفة على حسب الكائن الذي نمرره لها عند إستدعائها.
تعدد الأشكال يكون مرتبط بشكل أساسي بالوراثة حيث تكون الدالة مبنية على أساس الكلاس الأب، و عند إستدعائها نمرر لها كائن من إحدى الكلاسات التي ترث منه.
تطبيق مبدأ تعدد الأشكال
في المثال التالي قمنا بتعريف كلاس إسمه Shape ليحتوي على الأشياء التي يجب أن يمتلكها أي شكل هندسي. لذلك فإن أي كلاس سننشئه ليمثل شكل هندسي يجب أن نجعله يرث منه. في هذا الكلاس قمنا بوضع دالة واحدة إسمها printArea() و مهمتها طباعة مساحة الشكل الهندسي أياً كان نوعه.
بعدها قمنا بتعريف كلاس إسمه Square يمثل شكل المربع، و كلاس إسمه Rectangle يمثل شكل المستطيل. كلاهما جعلناهما يرثان من الكلاس Shape و يعيدان تعريف الدالة printArea() لكي تطبع مساحة كلٍ منهما كما ينبغي.
بعدها قمنا بإنشاء دالة إسمها printShapeArea() تقوم بطباعة مساحة الشكل الهندسي أياً كان نوعه حيث أنها تقوم باستداعاء الدالة printArea() منه.
في النهاية قمنا بإنشاء كائن من الكلاس Square و كائن من الكلاس Rectangle و تمرير كل كائن منهما للدالة printShapeArea().
مثال
نتيجة التشغيل:
Rectangle area = 12
تطبيق مبدأ تعدد الأشكال مع المصفوفات
في المثال التالي قمنا بإعادة المثال السابق و لكننا هذه المرة قمنا بوضع الكائنين square و rectangle في مصفوفة إسمها shapes.
بعدها قمنا بإنشاء حلقة تمر على الكائنات التي وضعناها في المصفوفة shapes واحداً تلو الآخر، و في كل مرة تستدعي الدالة printShapeArea() و تمرر لها كائن منهم.
مثال
نتيجة التشغيل:
Rectangle area = 12