C# - Interface
C# - الواجهات (Interfaces)
الواجهة (Interface) هي نوع خاص يُستخدم لتعريف مجموعة من التوقيعات (Signatures) للدوال والخصائص دون تنفيذها. تُستخدم الواجهات لتحديد "العقود" التي يجب على الكلاسات التي تطبقها تنفيذها.
🧠 لماذا نستخدم الواجهات؟
- لتحقيق الوراثة المتعددة (لأن C# لا تدعم وراثة متعددة من كلاس).
- لتحديد سلوك مشترك يمكن تطبيقه بطرق مختلفة.
- لفصل التصميم عن التنفيذ.
📌 مثال عملي على Interface:
interface IAnimal
{
void MakeSound();
}
class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("القط يقول: مياو");
}
}
class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("الكلب يقول: نباح");
}
}
class Program
{
static void Main()
{
IAnimal myCat = new Cat();
IAnimal myDog = new Dog();
myCat.MakeSound();
myDog.MakeSound();
}
}
✅ كل كلاس يطبق الواجهة IAnimal يجب أن يُنفذ دالة MakeSound().
📊 مقارنة بين Interface و Abstract Class:
| الميزة | Interface | Abstract Class |
|---|---|---|
| تنفيذ داخل الكود | ❌ | ✅ |
| وراثة متعددة | ✅ | ❌ |
| متغيرات/حقول | ❌ | ✅ |
| تطبيقها في الكلاسات | : IInterfaceName |
: BaseClass |
🎯 ملاحظات:
- تبدأ أسماء الواجهات غالبًا بالحرف
I(مثلIAnimal). - يمكن للكلاس أن يطبق أكثر من واجهة.
- الواجهات لا تحتوي على منطق - فقط التوقيع (حتى C# 8 أضافت إمكانية التنفيذ الافتراضي).
تعليقات
إرسال تعليق