تخطَّ إلى المحتوى

🧩 شرح البرمجة كائنية التوجّه

الواجهات (Interfaces)

الدرس 10 من 25· ⏱ 1 دقائق قراءة

ما هي الواجهة؟

عقد يحدّد طرقًا يجب على الصنف تنفيذها، دون تحديد كيفيّتها — يضمن سلوكًا مشتركًا.

// Java
interface Drawable {
    void draw();
}

class Circle implements Drawable {
    public void draw() {
        System.out.println("رسم دائرة");
    }
}

في Python (عبر ABC)

from abc import ABC, abstractmethod

class Payable(ABC):
    @abstractmethod
    def pay(self, amount): ...

class CreditCard(Payable):
    def pay(self, amount):
        print(f"دفع {amount} بالبطاقة")

عدّة واجهات

صنف واحد يمكنه تنفيذ عدّة واجهات (بخلاف الوراثة المفردة في كثير من اللغات):

class Smartphone implements Camera, Phone, GPS { }

الفائدة

  • يفرض عقدًا موحّدًا على أنواع مختلفة.
  • يتيح تعدّد الأشكال: تتعامل مع Payable دون معرفة النوع الفعلي.

واجهة مقابل صنف مجرّد

  • واجهة: عقد فقط (غالبًا بلا حالة)، عدّة واجهات.
  • صنف مجرّد: قد يحوي تنفيذًا وحالة، وراثة واحدة.

🎯 التالي: الأصناف المجرّدة.

هل كان هذا الدرس مفيدًا؟