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

interface

تعريف الواجهة interface

interface تُعرّف عقدًا من الدوال التي يلتزم الصنف بتنفيذها — تدعم الوراثة المتعدّدة.

الواجهة تحدد مجموعة من الدوال (المجرّدة أو default) دون تنفيذ. الصنف يُنفذ الواجهة بـ implements ويقدم كود كل دالة. تسمح لصنف واحد بتنفيذ عدة واجهات — حل مشكلة الوراثة المتعدّدة في Java.

الصياغة

public interface Drawable {
    void draw();

    default void fill() {
        System.out.println("تعبئة افتراضية");
    }
}

📄 مثال

public interface Serializable { }
public interface Comparable<T> {
    int compareTo(T other);
}

public class Student implements Comparable<Student> {
    String name;
    double gpa;

    @Override
    public int compareTo(Student other) {
        return Double.compare(this.gpa, other.gpa);
    }
}

أهم النقاط

العنصرالوظيفة
interface Name { }تعريف واجهة جديدة
void method();دالة مجرّدة — يجب تنفيذها في الصنف المُنفذ
default void method()دالة default لها كود مبدئي — اختياري تنفيذها
implementsيُعلن أن الصنف ينفذ الواجهة ويقدم لكل دالة كودًا

💡 نصائح عملية

  • استخدم interface عندما تحتاج "قادر على" (can-do) و extends عندما تحتاج "نوع من" (is-a)
  • واجهات جاهزة مهمة: Comparable, Serializable, Runnable, Cloneable

⚠️ أخطاء شائعة

  • تعميم الواجهات على كل شيء — أحيانًا abstract class أو enum أنسب
  • نسيان تنفيذ كل الدوال المجرّدة — خطأ ترجمة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.