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

كيف يمكن عمل وراثة لاكثر من كلاس

بدأه ali_mma في 4 مارس 2008 · 14 رد · 1,665 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يوجد عندنا

two Class

class A

class B

اريد عمل كلاس سي بحيث يجمع الصفات للكلاسين

الحمد لله الذي بنعمته تتم الصالحات

#2

هذه تدعى multiple inheritance و هي غير مدعومة في الدوت نت. و العديد من خبراء الـOOP لا يفضلون هذه الطريقة. يمكن الإستعاضة عنها باستخدام الـinterface و الذي يمكنك استخدام أكثر من واحد للكلاس.

#3

شكرا جزيلا يا System Down وانا اعرف هذا الشيء لكن السؤال كيف يمكن عمل ذلك بطريقة ملتفة

الحمد لله الذي بنعمته تتم الصالحات

#4

السلام عليكم ورحمة الله وبركاته

لست متاكدة من صحة هذا الكود

public class D
{
	public virtual void DoWork(int i)
	{
		// Original implementation.
	}
}

public abstract class E : D
{
	public abstract override void DoWork(int i);
}

public class F : E
{
	public override void DoWork(int i)
	{
		// New implementation.
	}
}
#5

شكرا للاخت دعاء مختار لكن السؤال ليس هكذا

عندنا

public class A
{
protected int x;
}
public class B
{
protected int y;
}

السؤال كيف يمكن عمل كلاس سي بحيث يرث من الكلاسين بطريقة غير مباشرة

ارجو ممن يعرف الرد باسرع وقت ممكن وجزاكم الله كل الخير

الحمد لله الذي بنعمته تتم الصالحات

#6

فكرت في هذه الطريقة ممكن تكون صحيحة

namespace Moddar Attari
{
   public  class A
	{
		protected  int x;

		public void print_X()
		{
			MessageBox.Show("In Class A");
		}

	}
   public  class B  
	{
		protected int y;

		public void print_y()
		{
			MessageBox.Show("In Class B");
		}

	}
   public class C : A
   {

	   public class D : B
	   {
	   }
	   public  D get_B()
	   {
		   return new D();
	   }
   }
   public class E : C
	 {

	   public E()
	   {

	   }

	 }
}

ارجو ممن يعرف مساعدتي

الحمد لله الذي بنعمته تتم الصالحات

#7
using System;

namespace ConsoleApplication1
{
	class A
	{
		public A()
		{
			Console.WriteLine("A");
		}
	}
	class B : A
	{
		public B()
		{
			Console.WriteLine("B");
		}
	}
	class C : B
	{
		public C()
		{
			Console.WriteLine("C");
		}
	}

	class Program
	{
		static void Main(string[] args)
		{
			C a = new C();
		}
	}
}

OUTPUT:
A
B
C
#8

بارك الله فيك اخي khaled100 لكن السؤال غير ذلك لان كلاس A جاهز وكلاس B جاهز ولا يصح ان ترث B من A .

الحمد لله الذي بنعمته تتم الصالحات

#9

عفواً

تم تعديل هذه المشاركة بواسطة khaled100 في 5 مارس 2008 في 22:48

#10

لا مشكلة

تم تعديل هذه المشاركة بواسطة ali_mma في 5 مارس 2008 في 22:56

الحمد لله الذي بنعمته تتم الصالحات

#11

ألسلام عليكم و رحمة الله و بركاته

انا جديد فى المنتدى ده و دى اول مشاركة ليا و مش الاخيرة باذن الله

دلوقتى انت بتسال ازاى تعمل Multi Inheritance فى السى شارب

للاسف السى شارب لا تدعم الوراثة لاكثر من كلاس

بس نيجى للناحية التانية تقدر تتحايل على الموضوع ده باستخدام ال Interfaces

لان من احد مميزات الانترفيس انك ممكن Multi inheritance

يا ريت اكون افادتك

#12

ممكن توضح بمثال والغرض منة ؟

مواضيع متنوعة

#13

لقد وضحت ذلك بمثال انظر المشاركة #5

الحمد لله الذي بنعمته تتم الصالحات

#14

ولكن اريدك ان تكتب "مثال توضيحي لااكثر" يوضح غرضك من الوراثة

مواضيع متنوعة

#15

كان هذا سؤال في مقابلة توظيف ليظهر الشخص قدرته على التعامل مع الوراثة بهذه الطريقة.

يوجد لحل لكن بطريقة غير مباشر . انا شخصيا لا اعرفها.

الحمد لله الذي بنعمته تتم الصالحات

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