تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[نقاش] الفرق بين الـ Interface , Abstract Class , Base Class , Sealed Class
#13
معلومة مفيدة اخي خضر ..

واضيف كذلك انه عند تعريف Abstract Class وClass عادية مشتقة من الـ Abstract بهذا الشكل:
PHP كود :
   //abstract
 
   abstract class Name
    
{

 
   }

 
   //normal class (inherts from Name)
 
   class Ahemd Name
    
{

 
   


لو عرفنا Instance من الAbstract class بواسطة طريقة الPointing (كما ذكر اخونا خضر في المشاركة السابقة) ،
PHP كود :
           Name n = new Ahemd(); 

ثم لو قمنا بالاستعلام عن الType بهذا الشكل
PHP كود :
           Name n = new Ahemd();
 
           MessageBox.Shown.GetType().Tostring() );//will return the concrete class (which is Ahmed) 

الـ Type المرجع سيكون Ahmed وليس Name ، ذلك بسبب ان الـ Interface والـ Abstract في حالة الPointing، كلاهما يقومان بإرجاع الـ Concrete type

وفي مثاالنا اعلاه الـ Concrete type هو Ahmed بسبب ان الـ Instance مشار اليه بواسطة متغير من نوع Abstract Smile

--

ومع ذلك ، عند استخدام المقارنة بالـ Type بواسطة المعامل Is  .. سنجد ان الرسالتين في الاسفل سيتم طباعتهما :

PHP كود :
           Name n = new Ahemd();

 
           if (n is Name)
 
           {
 
               MessageBox.Show("Hi"); //will be printed
 
           }
 
           if (n is Ahemd)
 
           {
 
               MessageBox.Show("Hi"); //will be printed
 
           


نعم ، المعامل Is  يرجع True سواء قارنت الـ object بالـ concrete class او بالـ Abtract class

طبعا نفس الموضوع بالضبط يحصل عند استخدام الانترفيس
الرد }}}
تم الشكر بواسطة: khodor1985 , ابو ليلى , sendbad100 , Amir_Alzubidy


الردود في هذا الموضوع
RE: [نقاش] الفرق بين الـ Interface , Abstract Class , Base Class , Sealed Class - بواسطة الشاكي لله - 03-07-16, 04:39 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [نقاش] نقاش حول تطبيق الفاتورة الإلكترونية فى السعودية المرحلة الثانية Zatca Integration AmrSobhy 3 3,040 22-05-25, 03:49 AM
آخر رد: abuarab
  تعلم Interface Abu Ehab 1 2,357 19-02-18, 10:38 PM
آخر رد: sendbad100
  KeyValuePair Class Abu Ehab 1 2,241 16-12-17, 06:08 PM
آخر رد: sendbad100
  ZipFile Class Abu Ehab 1 2,448 18-11-16, 03:44 AM
آخر رد: abulayth
  [نقاش] الـ Delegate الشاكي لله 11 10,074 01-09-16, 02:27 AM
آخر رد: أبو عمر
  [C#.NET] الفرق بين #String And String Builder c Devahmedsalim 3 4,859 15-09-13, 05:50 PM
آخر رد: sooriaty03
  Tips and Tricks : الفرق بين const و static readonly RaggiTech 0 3,541 14-10-12, 03:05 PM
آخر رد: RaggiTech
  الفرق بين التعريف باستخدام overridde و new RaggiTech 0 3,078 14-10-12, 02:57 PM
آخر رد: RaggiTech

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


يقوم بقرائة الموضوع: