الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ال Inheritance

مغلق
بدأه C#please في 10 مارس 2006 · 5 رد · 756 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

من المعروف في ال c sharp أن ال Inheritance لا يمكن من أكثر من class

أي أن ال Derived class لا يمكن أن تعمل inhert من أكثر من 2 Base class

طيب .... الكلام ده مش مظبوط أوي ....

ممكن تعمل inherit من لأكثر من class بإنك تعمل inherit من class هي كمان بتعمل inherit من class تاني

شوف الكود :

using System;

namespace LearnInheritance
{
  
  class Class1
	{
//Here class DAD
  class DAD
  { 	 
 	 public void Name()
 	 {
    Console.WriteLine("Mohamad Is the prophet");
 	 }
  }
//Here class SON which inherit from class DAD

  class SON:DAD
  { 	 
 	 public void Place()
 	 {
    Console.WriteLine("He was born in Mekka");
 	 }
  }

//Here class GRANDSON which inherit from class SON
  class GRANDSON:SON
  { 	 
 	 public void AGE()
 	 {
    Console.WriteLine("63\n\n");
 	 }
  }
  
  [STAThread]
  static void Main(string[] args)
  {
 	 //
 	 // TODO: Add code to start application here
 	 //

//Here in the results>>> class GRANDSON inherit from class SON and class GRANDSON
 	 GRANDSON obj = new GRANDSON();
 	 obj.Name();
 	 obj.Place();
  }
	}
}

المثال بالمرفقات

جزاكم الله خيرا

LearnInheritance.rar

#2

هذا ليس Multiple Inheritance

لأن الMultiple Inheritance هو أن ترث الClass من 2 classes في نفس الوقت و هذا يختلف عن أن ترث من Class ترث من Class اخر

و هذا كان يسبب مشاكل من أشهرها ال Diamond Problem و تحدث عندما تحاول أن ترث من 2 Classes لهم نفس الأب

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

كلامك مضبوط يا أخ bashmohandes من ناحية الواقع ... فهذا فعلا ليس Multiple Inheritance ..

لكن أنا اتحدث من نقطة ما يحدث فعلا ...

ما يحدث هو أن ال GRANSDON class بتاخد من ال SON class وال DAD class

بغض النظر عما يحدث فعلا...

أما ال Multiple Inheritance الذي تتحدث عنه فأظن أنه غير مدعوم في ال c sharp

جزاكم الله خيرا

#4

السلام عليكم

بالنسبة لل Multiple Inheritance فهي مدعومة في ال #c بواسطة ال interface فيمكنك عمل interface وان تجعلها تطبق على class معين

#5

لكن أخي salem_kik فإن interface فعلياً لا نستطيع القول أنها تحل تماماً مشكلة Multiple Inheritance ... لأنها تحوي على abstract Methods .... بالتالي تضطر لإعادة تعريفها عند استخدامها ... أم ان ترث من class فقد توجد method لا داعي لأن تعيد تعريفها عند استخدامها ..........

#6

فعليا ال c# لا تدعم Multiple Inheritance وان كانت تتغلب علي هذة المشكلة بطريقة اخري المهم اني قرأت بعض الاسئلة التي ربما توجة الي مبرمج سي شارب اثناء مقابلة عمل وكانت الاجابة القطعية لا اذا ورد هذا السؤال بهذة الصيغة المباشرة في امتحان فالاجابة القاطعة هي لا وهي بالطبع تختلف عن طريقة لغة c++ والتي تدعم ال Multiple Inheritance بطريقة مباشرة

تم تعديل هذه المشاركة بواسطة moza.mix في 16 مارس 2006 في 22:08

هذا الموضوع مغلق.

مواضيع مشابهة