دروس جافا

جافا هوم جافا مقدمة ابدأ جافا بناء جملة جافا تعليقات جافا متغيرات جافا أنواع بيانات جافا جافا نوع الصب مشغلي جافا سلاسل جافا جافا الرياضيات جافا المنطقية جافا إذا ... آخر تبديل جافا جافا أثناء التكرار جافا للحلقة جافا بريك / متابعة جافا المصفوفات

طرق جافا

طرق جافا معلمات طريقة جافا طريقة جافا التحميل الزائد نطاق جافا العودية جافا

فئات جافا

جافا OOP فئات / كائنات جافا سمات فئة Java طرق فئة جافا منشئو جافا معدِّلات جافا تغليف جافا حزم جافا / API الوراثة جافا جافا تعدد الأشكال فئات جافا الداخلية جافا التجريد واجهة جافا جافا Enums مدخلات مستخدم جافا تاريخ جافا جافا ArrayList جافا لينكدليست جافا HashMap جافا هاشسيت جافا التكرار فئات Java Wrapper استثناءات Java جافا RegEx خيوط جافا جافا لامدا

معالجة ملفات جافا

ملفات جافا جافا إنشاء / كتابة الملفات ملفات قراءة جافا جافا حذف الملفات

جافا كيف

أضف عددين

مرجع جافا

كلمات جافا طرق سلسلة جافا طرق جافا للرياضيات

أمثلة جافا

أمثلة جافا مترجم جافا تمارين جافا مسابقة جافا شهادة جافا


واجهة جافا


واجهات

هناك طريقة أخرى لتحقيق التجريد في Java ، وهي استخدام الواجهات.

إن " فئة مجردةinterface " تمامًا تُستخدم لتجميع الطرق ذات الصلة بأجسام فارغة:

مثال

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

للوصول إلى طرق الواجهة ، يجب "تنفيذ" الواجهة (كيندا مثل موروث) بواسطة فئة أخرى باستخدام implements الكلمة الأساسية (بدلاً من extends). يتم توفير نص طريقة الواجهة بواسطة فئة "التطبيق":

مثال

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

ملاحظات على الواجهات:

  • مثل الفئات المجردة ، لا يمكن استخدام الواجهات لإنشاء كائنات (في المثال أعلاه ، لا يمكن إنشاء كائن "حيوان" في MyMainClass)
  • لا تحتوي طرق الواجهة على جسم - يتم توفير الجسم بواسطة فئة "التنفيذ"
  • عند تنفيذ الواجهة ، يجب تجاوز جميع أساليبها
  • طرق الواجهة بشكل افتراضي abstractو public
  • تكون سمات الواجهة بشكل افتراضي publicو staticfinal
  • لا يمكن أن تحتوي الواجهة على مُنشئ (حيث لا يمكن استخدامها لإنشاء كائنات)

لماذا ومتى تستخدم الواجهات؟

1) لتحقيق الأمان - قم بإخفاء تفاصيل معينة واعرض فقط التفاصيل المهمة للعنصر (الواجهة).

2) لا تدعم Java "الوراثة المتعددة" (يمكن للفئة أن ترث فقط من فئة ممتازة واحدة). ومع ذلك ، يمكن تحقيق ذلك باستخدام الواجهات ، لأن الفئة يمكنها تنفيذ واجهات متعددة. ملاحظة: لتنفيذ واجهات متعددة ، افصل بينها بفاصلة (انظر المثال أدناه).


واجهات متعددة

لتنفيذ واجهات متعددة ، افصل بينها بفاصلة:

مثال

interface FirstInterface {
  public void myMethod(); // interface method
}

interface SecondInterface {
  public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("Some text..");
  }
  public void myOtherMethod() {
    System.out.println("Some other text...");
  }
}

class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}