recent
أخبار ساخنة

كيفية بناء interface و توريث الكلاسات منه في لغة جافا JAVA الدرس|30|

الصفحة الرئيسية


الـ Interface في الجافا

يسمى في اللغة العربية الواجهة Interface و هو شبيه من حيث البنية بالكلاس و يحتوي دوال مجردة من نوع abstract كما تعرفنا عليها بالدرس السابق, و ذكرنا بالدرس السابق أن كلمة مجرد abstract تعني أن الدالة او الكلاس الذي نوعه مجرد abstract أنه لا يحتوي كود فيستخدم للتصريح فقط, و الواجهة Interface هو شبيه بالكلاس المجرد أي أنه يحتوي على دوال مجردة من نوع abstract و لا يمكن أن تقبل بناء كود بداخلها و يطلق على Interface في بعض المراجع مصطلح نمط أي أن الكلاس الذي سيعرّف من Interface مُلزَم بتنفيذ كافة الدوال الموجودة داخل Interface و هو شبيه بالكلاس abstract سوى أن الفرق بينه و بين Interface أنه يقبل الوراثة المتعددة.


الفرق بين Interface و بين abstract

1 - يمكن أن يحتوي الكلاس من نوع abstract على دوال مجردة و غير مجردة بينما الكلاس من نوع Interface يحتوي على دوال مجردة فقط يعني مسبوقة بكلمة abstract.

2 - الكلاس من نوع abstract لا يدعم الوراثة المتعددة كما هو الحال في بقية الكلاسات بينما Interface يدعم الوراثة المتعددة.

3 - الكلاس من نوع abstract يمكن أن يحتوي على متغيرات ثابتة و متغيرة بينما Interface يحتوي على متغيرات ثابتة فقط.

4 - الكلمة المحجوزة abstract تُستخدَم للكلاس و الدوال بينما كلمة Interface تستخدم للواجهة فقط.


ماذا يحتوي الـ Interface في الجافا؟

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

و هذا يجعلنا نفهم أن Interface يتحكم بمسار البرنامج لذلك يُطلق عليه في بعض المراجع مصطلح نمط او المسار المرسوم بحيث أنه يقيّد البرنامج بمسار مُعيَّن و هو أن كل الكلاسات الوارثة من Interface تقوم بتنفيذ كافة الدوال في Interface و المتغيرات الثابتة.

 

طريقة وراثة الكلاس من Interface

تعلمنا في الدروس السابقة أن الكلاس عندما يُريد أن يَرِث من كلاس آخر يُستخدَم الكلمة extends و لكن عندما يريد كلاس أن يَرِث من Interface فإننا نَستخدِم الكلمة المحجوزة implements.


الشكل العام لوراثة كلاس من Interface

class A implements P

يعني لدينا كلاس إسمه A و ورث Interface بواسطة الكلمة implements.

 

مثال

package c1;
interface A1
{
    void print();
}
public class C1 implements A1{
    public void print()
    {
        System.out.println("welcome course java")
    }
     public static void main(String []args){
        C1 c=new C1();
        c.print();
     }
}

 

شرح المثال السابق

أنشأنا Interface بإسم A1 و به دالة إسمها print و أورثنا كلاس إسمه C1 من الـ Interface الذي إسمه A1 و إستدعينا الدالة الموجودة بداخله ووضعنا لها كود طباعة جملة welcome course java و دخلنا للبرنامج الرئيسي و أنشأنا كائن من الكلاس C1 و إستدعينا الدالة print عن طريق الكائن c.

google-playkhamsatmostaqltradent