• 0

متى أكون بحاجة لتعريف Abstract Class وماهي الفائدة منه؟

متى أكون بحاجة لتعريف Abstract Class وماهي الفائدة منه أرجو تزويدي بمثال

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


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

تكمن أهمية الصفوف المجردة Abstract Classes في أنها يمكن أن تحتوي على توابع (دوال) لا تقوم بتنفيذ أي سلوك (contains no implementation) يتم تحديد السلوك في الصف الابن الذي يرث من الصف المجرد حيث يجبر الصف الابن على إعادة تعريف الدوال الموجودة في الصف المجرد وبالتالي تحديد السلوك الذي يتقوم بتنفيذه، قد تقول لي وما هي الفائدة؟

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

الحل الأمثل نقوم بإنشاء صف مجرد Abstract Class يحوي على دالة مجردة Abstract Function  مثلًا move:

  public abstract void move();

ثم إنشاء صف لكل كائن يرث من الصف المجرد Abstract Class ويحدد نوع السلوك الذي ينفذه في الدالة:

move()

1-Class Bird

 public override void move()
        {
            Console.WriteLine("I'm bird I can fly");
        }

2- Class Fish

 public override void move()
        {
            Console.WriteLine("I'm fish I can swim");
        }

 

متى أكون بحاجة لتعريف Abstract Class وماهي الفائدة منه؟

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


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

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

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

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


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

تسجيل الدخول

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


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