تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تعدد الاشكال Polymorphism #2
#1
بسم الله الرحمن الرحيم


تعدد الاشكال Polymorphism الجزء الثاني:

سبق وشرحنا في درس سابق عن تطبيق بسيط من تطبيقات تعدد الاشكال ،حيث اخذنا علامة الزائد (+) كمثال لذلك.

في هذا الدرس سوف نتعمق قليلا وذلك بتبيان انواع تعدد الاشكال.

هنالك نوعان من الـPolymorphism:

1- Compile Time Polymorphism.
2- Run Time Polymorphism.

1- Compile Time Polymorphism: يتم من خلال استخدام  Overloading سواء للدوال أو للمعاملات

حيث يتم التحقق من الدالة المستدعاة من حيث نوع الدالة ونوع وعدد وترتيب الباراميترات وقت الترجمة Compile Time أي اثناء كتابة الكود البرمجي، وتسمى ايضا بــ static polymorphism او early binding

كما في المثال ادناه:
PHP كود :
public class Information
    
{
 
       public void Print(string name) => Console.WriteLine(name);

 
       public void Print(string nameint age) => Console.WriteLine($"{ name}, {age}");
 
   

2- Run Time Polymorphism: يتم من خلال استخدام مبدأ الوراثة باستخدام virtual methods في الكلاس الأب وoverride methods في الكلاس الابن

حيث يتم اعادة استخدام دوال الـvirtual في الكلاس الابن وذلك من خلال اعادة تعريف هذه الدوال بنفس الاسماء ونفس المدخلات باستخدام كلمة override بحيث يتم التحقق من هذه الدوال المستدعاة وقت التنفيذ، وتسمى ايضا بــdynamic polymorphism او late binding.

بحيث بامكاننا تحديث او تعديل مكونات الدالة الخاصة للـ Parent Class داخل الـ Childes Classes حسب متطلبات دوال الكلاسات الابناء.

المثال:
PHP كود :
internal class Program
    
{
 
       private static void Main(string[] args)
 
       {
 
           Person person = new Employee();
 
           person.Print(); // Output: This is an Employee

 
           //new object
 
           person = new Player();
 
           person.Print(); // Output: This is Player

 
           Console.ReadKey();
 
       }
 
   }

 
   public abstract class Person
    
{
 
       public virtual void Print() => Console.WriteLine("This is Base Class");
 
   }

 
   public class Employee Person
    
{

 
       public override void Print() => Console.WriteLine("This is an Employee");
 
   }



تحياتي لكم
سجاد محمد
الرد
تم الشكر بواسطة: elgokr , elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعدد الاشكال Polymorphism #1 Sajad 0 230 04-03-19, 11:53 PM
آخر رد: Sajad

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم