Latest web development tutorials

C # الميراث

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

عند إنشاء فئة، المبرمجين لا تحتاج إلى الانتهاء من إعادة كتابة أعضاء البيانات وظائف عضو جديد، تحتاج فقط لتصميم فئة جديدة يرث يمكن للأعضاء الحاليين للطبقة يكون. ويطلق علىالفئة الأساسية القائمة فئة، ويسمى فئة جديدة فئة مشتقة.

تحقيق فكرة الميراثالانتماء (IS-أ) العلاقة.على سبيل المثال،وينتمي حيوان ثديي (IS-A)الحيوانات والكلابتعود إلى (IS-أ)من الثدييات، وبالتاليتنتمي إلىكلب(IS-A)الحيوانات.

القاعدة والفئات المشتقة

وهناك فئة يمكن استخلاصها من أكثر من فئة واحدة أو واجهة، وهو ما يعني أنه يمكن أن ترث فئات أساسية متعددة أو واجهات من البيانات وظائف.

إنشاء فئة مشتقة في C # الصيغة كالتالي:

<رصا-محدد> الدرجة <base_class>
{
 ...
}
الطبقة <derived_class>: <base_class>
{
 ...
}

لنفترض أن هناك الشكل الفئة الأساسية، وهو مستطيل فئة مشتقة:

باستخدام نظام.
مساحة InheritanceApplication
{
   الطبقة الشكل 
   {
      setWidth الفراغ الجمهور (ث كثافة العمليات)
      {
         العرض = ث.
      }
      setHeight الفراغ الجمهور (الباحث ح)
      {
         ارتفاع = ح.
      }
      محمية عرض الباحث.
      محمية ارتفاع كثافة العمليات.
   }

   // مشتقة فئة فئة مستطيل الشكل:
   {
      getArea كثافة العمليات العامة ()
      { 
         العودة (العرض * الارتفاع). 
      }
   }
   
   الطبقة RectangleTester
   {
      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         المستطيل مصحح = المستطيل الجديد ()؛

         Rect.setWidth (5)؛
         Rect.setHeight (7)؛

         // منطقة الطباعة من Console.WriteLine كائن ( "المساحة الإجمالية: {0}"، Rect.getArea ())؛
         Console.ReadKey ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

المساحة الكلية: 35

تهيئة الفئة الأساسية

فئة مشتقة يرث المتغيرات عضو وطرق عضوا في الفئة الأساسية. ولذلك، ينبغي إنشاء الكائن الأصل قبل إنشاء كائن من الدرجة الفرعية. يمكنك تهيئة الفئة الأصل في قائمة التهيئة الأعضاء.

يوضح البرنامج التالي هذه النقطة:

باستخدام نظام.
مساحة RectangleApplication
{
   الطبقة مستطيل
   {
      // المتغيرات عضو باي طول مزدوج.
      محمية عرض مزدوج.
      مستطيل العام (ل مزدوج، ث مزدوج)
      {
         طول = لتر.
         العرض = ث.
      }
      GetArea مزدوج العام ()
      {
         العودة طول * العرض.
      }
      العرض باطلة العامة ()
      {
         Console.WriteLine ( "طول: {0}"، طول)؛
         Console.WriteLine ( "العرض: {0}"، العرض).
         Console.WriteLine ( "الحجم: {0}"، GetArea ())؛
      }
   } // نهاية الطبقة مستطيل  
   الطبقة سطح المنضدة: مستطيل
   {
      تكلفة مزدوجة خاصة.
      سطح المنضدة العامة (ل مزدوج، ث مزدوج): قاعدة (ل، ث)
      {}
      GetCost ضعف الجمهور ()
      {
         تكلفة مزدوجة؛
         التكلفة = GetArea () * 70.
         العودة التكلفة؛
      }
      العرض باطلة العامة ()
      {
         base.Display ()؛
         Console.WriteLine ( "التكلفة: {0}"، GetCost ())؛
      }
   }
   الطبقة ExecuteRectangle
   {
      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         الطاولة ر = الطاولة الجديدة (4.5، 7.5)؛
         t.Display ()؛
         Console.ReadLine ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

طول: 4.5
العرض: 7.5
المنطقة: 33.75
التكلفة: 2362.5

C # وراثة متعددة

C # لا يدعم راثة متعددة.ومع ذلك، يمكنك استخدام واجهة لتحقيق وراثة متعددة. يوضح البرنامج التالي هذه النقطة:

باستخدام نظام.
مساحة InheritanceApplication
{
   الطبقة الشكل 
   {
      setWidth الفراغ الجمهور (ث كثافة العمليات)
      {
         العرض = ث.
      }
      setHeight الفراغ الجمهور (الباحث ح)
      {
         ارتفاع = ح.
      }
      محمية عرض الباحث.
      محمية ارتفاع كثافة العمليات.
   }

   // الطبقة قاعدة PaintCost
   الواجهة العمومية PaintCost 
   {
      الباحث getCost (منطقة كثافة العمليات)؛

   }
   // مشتقة فئة فئة مستطيل الشكل:، PaintCost
   {
      getArea كثافة العمليات العامة ()
      {
         العودة (العرض * الارتفاع).
      }
      العامة كثافة getCost (كثافة المنطقة)
      {
         منطقة العودة * 70.
      }
   }
   الطبقة RectangleTester
   {
      ساكنة باطلة الرئيسية (سلسلة [] وسائط)
      {
         المستطيل مصحح = المستطيل الجديد ()؛
         منطقة كثافة العمليات.
         Rect.setWidth (5)؛
         Rect.setHeight (7)؛
         المساحة = Rect.getArea ()؛
         // منطقة الطباعة من Console.WriteLine كائن ( "المساحة الإجمالية: {0}"، Rect.getArea ())؛
         Console.WriteLine ( "الطلاء التكلفة الإجمالية: $ {0}"، Rect.getCost (منطقة))؛
         Console.ReadKey ()؛
      }
   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

المساحة الكلية: 35
طلاء التكلفة الإجمالية: 2450 $