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 الكامل بالعربي.