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 أضافت إمكانية التنفيذ الافتراضي).

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework