Latest web development tutorials

واجهة جافا

واجهة (بالإنكليزية: واجهة)، في لغة البرمجة JAVA هو نوع المجرد، هي عبارة عن مجموعة من الأساليب التجريدية، واجهات التفاعل عادة للبيان. وهناك فئة من وراثة وضع واجهة، وبالتالي ليرث مجردة واجهة الأساليب.

واجهة ليست فئة والنهج فئة إلى واجهة إعداد مشابه جدا، لكنها تنتمي إلى مفاهيم مختلفة. يصف الطبقة خصائص الكائن والأساليب. الطبقة طريقة لتنفيذ يحتوي على واجهة.

إلا تنفيذ فئة واجهة مجردة، أو آخر لتحديد واجهة كل فئة الأساليب.

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

واجهة مشابهة لنقطة الطبقة:

  • واجهة يمكن أن يكون لها أساليب متعددة.
  • يتم حفظ الملف. JAVA واجهة في نهاية الملف، اسم الملف باستخدام اسم واجهة.
  • يتم حفظ واجهة ملف بايت كود في ملف تنتهي في. الطبقة.
  • واجهة ملف بايت كود المقابلة مع اسم الحزمة يجب أن تطابق بنية الدليل.
واجهة والطبقة التمييز:
  • واجهة لا يمكن استخدامها لإنشاء كائنات.
  • واجهة ليست المنشئ.
  • يجب أن تكون كافة أساليب واجهة أساليب مجردة.
  • لا يمكن أن تحتوي على واجهات المتغيرات عضو، بالإضافة إلى متغيرات ثابتة ونهائية.
  • لا يتم توريث الواجهة من قبل الطبقة، ولكن الطبقة هو أن تتحقق.
  • واجهة تدعم وراثة متعددة.

واجهة الإعلانات

بناء جملة تعريف واجهة على النحو التالي:

[可见度] interface 接口名称 [extends 其他的类名] {
        // 声明变量
        // 抽象方法
}

يستخدم الكلمة واجهة لإعلان واجهة. هنا مثال بسيط لإعلان واجهة.

/* 文件名 : NameOfInterface.java */
import java.lang.*;
//引入包

public interface NameOfInterface
{
   //任何类型 final, static 字段
   //抽象方法
}

واجهة لديه الميزات التالية:

  • واجهة مجردة ضمنيا، عندما يعلن واجهة عندما ليس من الضروري استخدام الكلمة المجردة.
  • كل أسلوب واجهة مجردة ضمنيا الإعلان، مجردة لا تتطلب نفس فرعية رئيسية.
  • أساليب واجهة علنية.

أمثلة

/* 文件名 : Animal.java */
interface Animal {

   public void eat();
   public void travel();
}

تنفيذ واجهة

عندما تنفذ الطبقة واجهة فئة واجهة كل الأساليب لتحقيق. خلاف ذلك، يجب أن يتم تعريف الطبقة كفئة مجردة.

استخدام تنفذ الطبقة الكلمة التي تطبق الواجهة. في تعريف فئة، تنفذ الكلمة وراء تعريف فئة.

تنفيذ تركيب واجهة، يمكنك استخدام هذه الصيغة:

... implements 接口名称[, 其他接口, 其他接口..., ...] ...

أمثلة

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 

الأمثلة المذكورة أعلاه جمعت النتائج على النحو التالي:

Mammal eats
Mammal travels

عندما تجاوز الأساليب أعلن في واجهة، تحتاج إلى دفع الانتباه إلى القواعد التالية:

  • الطبقة عند تنفيذ أساليب واجهة، لا يمكنك رمي استثناء إلزامي، فقط في واجهة، أو يرث واجهة فئة مجردة طرح الاستثناء إلزامي.
  • الطبقة عند إعادة كتابة للحفاظ على اسم طريقة متسقة، ويجب أن يبقى نفس أو متوافقة مع نوع الإرجاع.
  • إذا كان تنفيذ فئة واجهة مجردة، ثم ليست هناك حاجة لتنفيذ طريقة واجهة.

في وقت تنفيذ واجهة، ولكن أيضا إيلاء الاهتمام لبعض القواعد:

  • وهناك فئة يمكن تنفيذ واجهات متعددة.
  • وهناك فئة يمكن أن ترث فئة واحدة فقط، ولكن يمكن تنفيذ واجهات متعددة.
  • واجهة يمكن أن ترث واجهة أخرى، والفئات التي ترث المقارنة بين ما شابه ذلك.

واجهة الميراث

واجهة يمكن أن ترث واجهة أخرى، أكثر مماثلة بين الطبقات والميراث. واجهة الإرث تمتد الكلمات الرئيسية واجهة الفرعية ترث أساليب الواجهة الأم.

الهوكي وكرة القدم واجهات موروثة الواجهات التالية: رياضة

// 文件名: Sports.java
public interface Sports
{
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

// 文件名: Football.java
public interface Football extends Sports
{
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

// 文件名: Hockey.java
public interface Hockey extends Sports
{
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

الهوكي واجهة نفسه يعلن أربعة أساليب، واجهة يرث طريقتين من الرياضة، وذلك لإدراك الحاجة إلى تنفيذ واجهة الطبقة الهوكي ستة طرق.

وبالمثل، يجب على واجهة الطبقة تنفيذ كرة القدم لتنفيذ خمسة طرق، من بينهم اثنان من واجهات الرياضة.


واجهة الميراث متعددة

في جاوة، وراثة فئة متعددة ليست قانونية، ولكن واجهة يسمح راثة متعددة.

في واجهة من وراثة متعددة تمتد الكلمة مرة واحدة فقط، في واجهات متابعة الميراث اللاحقة. على النحو التالي:

public interface Hockey extends Sports, Event

يتم تعريف جزء البرنامج المذكور أعلاه من الناحية القانونية واجهات الفرعية، على عكس الفئات التي واجهة تسمح راثة متعددة، والرياضة والحدث قد تحدد أو وراثة نفس الأسلوب


واجهة علامة

لا يحتوي على واجهة ورثت الأكثر شيوعا أي أساليب واجهة.

ويحدد واجهة ليست أساليب الواجهة والممتلكات، ومجرد يدل على أنه ينتمي إلى نوع معين من فئة رمز آخر لاختبار يسمح لها بأن تفعل شيئا.

يحدد دور واجهة: بسيطة صورة كائن موجود لجعل علامة (بناء الطوابع)، أو جعل كائن لديه امتياز معين.

على سبيل المثال: حزمة java.awt.event يتم تعريف واجهات MouseListener اجهة الميراث java.util.EventListener على النحو التالي:

package java.util;
public interface EventListener
{}

لا توجد وسيلة ما يسمى واجهة واجهة علامة. يستخدم واجهة علامة أساسا لغرضين:

  • إنشاء واجهات الأم المشتركة:

    كما EventListener اجهة، والتي تتألف من عشرات آخرين API واجهة تمديد جافا، يمكنك استخدام واجهة علامة لوضع مجموعة من واجهة واجهة الأم. على سبيل المثال: عندما يرث واجهة EventListener اجهة، وآلة جافا الافتراضية (JVM) لمعرفة واجهة لاستخدامها في برنامج وكيل الأحداث.

  • إضافة إلى نوع بيانات الطبقة:

    هذا الوضع هو الغرض اجهة العلامات الأصلي، والفئة التي تطبق الواجهة علامة لا تحتاج إلى تعريف أي أساليب واجهة (واجهة علامة هي ببساطة بأي حال من الأحوال)، ولكن الطبقة إلى نوع الواجهة من خلال تعدد الأشكال.