User talk:ابراهيم علي عبدالغني

تعددية الأشكال - Polymorphism
'في لغات البرمجة و نظريات التعدد، تعتبر	تعددية الأشكال''' طريقة للتعامل مع الأنواع المختلفة عن طريق وسيط(مزود) واحد فقط. ويمكننا اختصار ذلك من العنوان تعددية الأشكال وهو أنه عندنا شكل واحد رئيسي وينبثق أو يخرج أو يتولد منه أشكال فرعية يسهل التعامل معها.

وهناك أنواع شائعة من تعددية الأشكال، أبرزها:


 * تعددية الأشكال المخصصة : وهو إنشاء وسيط(مزود) شائع الإستخدام ويحمل نفس الشكل لكنه يخدم أنواع مختلفة.
 * تعددية الأشكال الحدودية أو البرمجة العامة : وهي طريقة لجعل اللغات البرمجة أكثر تعبيراً وشمولية.
 * تعددية الأشكال الموروثة و تدعى أيضا تعددية الأشكال الشمولية أو تعددية الأشكال النوعية : عندما يوجد "كلاس" رئيسي وله صفات يرثها عدة "كلاسات" فرعية.

التاريخ (الإستقراء)
بدء الإهتمام والتطوير في تعددية الأشكال في بداية الستينيات (1960م) وبدء التنفيذ العملي في نهاية العقد. صنف كريستوفر ستراشي في مفاهيم أساسية في لغات البرمجة أن تعددية الأشكال الحدودية أو البرمجة العامة و تعددية الأشكال المخصصة الفئتين الرئيسيتين لتعددية الأشكال. و عُرفت تعددية الأشكال الحدودية أو البرمجة العامة كميزة في لغة البرمجة "الجول 68"، بينما عُرفت تعددية الأشكال الموروثة كميزة أساسية في لغة البرمجة "إم إل". وفي عام 1985م قدم بيتر فيجنر و لوكا كارديلي ورقة بحثية توضح أن لغة البرمجة "سيمولا" كأول لغة تنفذ تعددية الأشكال الموروثة.

تعددية الأشكال المخصصة
المقال الرئيسي: تعددية الأشكال المخصصة

عرّف كريستوفر ستراشي هذا النوع من تعددية الأشكال أنه يمكن تطبيقه بناءً على المعطيات بإختلاف الأنواع. ملحوظة: يعرف هذا النوع أيضا باسم قابلية إعادة استخدام الوظيفة أو قابلية إعادة إستخدام المشغل\الرمز. وهذا المثال بالأسف بلغة باسكال بإتسخدام مفهوم الديلفى الدالة التي تسمى "Add" يمكن استخدامها لأكثر من نوع:

وكما وضحنا أن الدالة "Add" يتم استدعاؤها بناءً على المعطيات\المدخلات.

تعددية الأشكال الحدودية أو البرمجة العامة
المقال الرئيسي :تعددية الأشكال الحدودية. مفهوم تعددية الأشكال الحدودية ينطبق على كل من أنواع البيانات و الدَّوال، وهذا المفهوم يساعدنا على كتابتهم بطريقة عامة بحيث يمكننا التعامل مع القيم والمحتوى بدون الإعتماد أو الإلتفات لنوعيتهم.

والمثال التالي بلغة "هاسكال" يوضح كيفية إستخدام هذا النوع من تعددية الأشكال، بحيث يمكننا استخدام أكثر من نوع كمدخل "للكلاس":

وهذا النوع من تعددية الأشكال متوفر أيضا في لغات مختلفة مثل "جافا، سي شارب، سي بلس بلس" وهاكم مثال على "سي شارب":

تعددية الأشكال الموروثة
المقال الرئيسي : تعددية الأشكال الموروثة

إستخدامُ هذا النوع يساعدنا لتوريث صفات و وظائف من أنواع و "كلاسات" رئيسية لأنواع و "كلاسات" فرعية.

ففي المثال التالي، قمنا بتعريف نوع رئيسي وهو "حيوان"، لذا فإن أي حيوان فرعي يرث صفات و وظائف هذا الحيوان الرئيسي باختلاف الطريقة والتنفيذ بالطبع، وهاكم مثال باستخدام لغة "جافا":

وفي مثال آخر، هب أن هناك نوع رئيسي يُسمى "رقم" بمكن إدراج أنواع فرعية منه باسم "رقم صحيح"، "رقم عشري" إلى آخره من أنواع الأرقام.