الواجهات (مقدمة ومقارنة)
عرّف الواجهات ونفّذها في الفئات، وقارنها بالفئات المجرّدة. تعلّم الدوال الافتراضية والتنفيذ المتعدد.
الواجهات (مقدمة ومقارنة) درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
ما الواجهة؟
الواجهة: عقد يسرد تواقيع الدوال التي يجب على الفئة توفيرها. استخدموها لوصف قدرة، مثل Drivable أو Printable، من دون فرض تسلسلات هرمية للفئات.
الشيفرة: تنفيذ واجهة
تنفّذ الفئات الواجهات لتتعهد بسلوك معيّن. ويمكنكم الإشارة إلى الكائن باستخدام نوع واجهته واستدعاء الدوال المعلنة.
public class Main {
// Interface that declares a capability
static interface Drivable {
void drive(); // method to implement
}
// A class implements the interface
static class Car implements Drivable {
public void drive() {
System.out.println("Car is driving");
}
}
public static void main(String[] args) {
Drivable d = new Car(); // upcast to interface
d.drive(); // runs Car's method
}
}
الواجهات مقابل الفئات المجرّدة
الفئة المجرّدة = علاقة is-a مع شيفرة مشتركة. الواجهة = قدرة can-do. يمكن للفئة أن تمدد فئة واحدة، لكنها تستطيع تنفيذ واجهات متعددة، مما يحافظ على مرونة التصميمات ويتجنب أشجارًا عميقة.
الشيفرة: الدالة الافتراضية
يمكن للواجهات أن تحتوي على دوال default تتضمن شيفرة. وترث الفئات التي تنفذ الواجهة ذلك السلوك الصغير تلقائيًا.
public class Main {
// Interface with a default method (has a body)
static interface Greeter {
void greet(String name);
default void sayBye() { // default provides a reusable tiny implementation
System.out.println("Bye");
}
}
static class SimpleGreeter implements Greeter {
public void greet(String name) {
System.out.println("Hello, " + name);
}
}
public static void main(String[] args) {
Greeter g = new SimpleGreeter();
g.greet("Ada");
g.sayBye(); // default method from the interface
}
}
واجهات متعددة
يمكن للفئة تنفيذ عدة واجهات في الوقت نفسه (مثل Drivable وMaintainable). وبهذا نمثل القدرات من دون فرض سلسلة ثابتة من الفئات الأصلية.
الشيفرة: واجهات متعددة
تنفذ فئة واحدة الواجهتين معًا. ويمكنكم التعامل معها على أنها Drivable أو Maintainable أو نوعها الفعلي، بحسب السياق.
public class Main {
static interface Drivable { void drive(); }
static interface Maintainable { void maintain(); }
static class ServiceCar implements Drivable, Maintainable {
public void drive() { System.out.println("ServiceCar driving"); }
public void maintain() { System.out.println("ServiceCar maintenance"); }
}
public static void main(String[] args) {
ServiceCar s = new ServiceCar();
s.drive();
s.maintain();
}
}
التحقق من الواجهات
تحقق سريع: أي عبارة عن الواجهات في Java صحيحة؟
مراجعة
مراجعة: تحدد الواجهات عقود السلوك، وتنفذها الفئات. استخدموا القيم الافتراضية للشيفرة المشتركة الصغيرة، واجمعوا قدرات متعددة في فئة واحدة عند الحاجة.
الأسئلة الشائعة
هل درس «الواجهات (مقدمة ومقارنة)» مجاني؟
نعم — نص درس «الواجهات (مقدمة ومقارنة)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «الواجهات (مقدمة ومقارنة)»؟
عرّف الواجهات ونفّذها في الفئات، وقارنها بالفئات المجرّدة. تعلّم الدوال الافتراضية والتنفيذ المتعدد. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.
كم من الوقت يستغرق درس «الواجهات (مقدمة ومقارنة)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الفئات المجرّدة
- الواجهات (مقدمة ومقارنة)
- التحويل إلى الأعلى والأسفل وinstanceof