تعلم لغة الجافا – الدرس الثاني عشر الواجهات Interfaces
الواجهات هي قوالب كلاس. على الرغم من أنها ليست مطلوبة بشكل صارم ، فهي جزء من الهيكل التنظيمي للبرمجة الشيئية. تحدد الواجهات طرقًا للكلاس عن طريق تحديد اسم الطريقة ونوع الإرجاع (أو الفراغ) ووسائط الطريقة (حسب النوع والاسم). تسمى تعريفات الطريقة هذه التوقيعات. لأن هذا قالب ، لا تحتوي توقيعات الطريقة على أي كود. يتم إدخال الرمز في تنفيذ واجهة. يتم استخدام الواجهات في نظام تعدد الأشكال.
لاحظ هاتين النقطتين المهمتين حول الواجهات:
إذا قام الفصل بتنفيذ interface ، فيجب أن تظهر جميع طرق الواجهة في الفصل.
يتم استخدام الكلمة الأساسية implements عند إنشاء كلاس تم تصميمها بعد واجهة.
تُستخدم الواجهة عمومًا كقالب لكلاس متعددة. تشترك جميع هذه الكلاس في الأساليب المحددة في الواجهة. ومع ذلك ، قد يختلف تنفيذ الأساليب من كلاس إلى أخرى.
مثال على الواجهة
قد تحتوي واجهة باسم Animal على تعريفات طرق للأعلاف والعريس والحيوانات الأليفة. يمكن أن تكون إطعام الحيوانات وتهيئتها وعضها مختلفة عن الحيوانات نفسها.
interface Animal { bool feed(bool timeToEat); void groom(); void pet(); }
على سبيل المثال ، يمكن تطبيق كلاس Dog بطريقة يمكن التنبؤ بها إلى حد ما.
class Dog implements Animal { bool feed(bool timeToEat) { // صب الطعام في وعاء return true; } void groom() { // فرشاة جيدا } void pet() { // الحيوانات الأليفة بحذر } }
فئات الحيوانات الأخرى ، قد تكون لها احتياجات محددة.
class Giraffe implements Animal { bool feed(bool timeToEat) { // أشر إلى الأشجار return true; } void groom() { // احصل على سلم // فرشاة جيدا } void pet() { // احصل على سلم // الحيوانات الأليفة بحذر } } class Tiger implements Animal { bool feed(bool timeToEat) { // رمي اللحم النيء في القفص return true } void groom() { // تهدئة // فرشاة جيدا } void pet() { // لا PET } }
تمرين
إنشاء كلاس gorilla التي تنفذ واجهة الحيوان.
interface Animal { bool feed(bool timeToEat); void groom(); void pet(); }
الحل
class Gorilla implements Animal { bool feed(bool timeToEat) { // وضع طعام Gorilla في القفص return true; } void groom() { // رغوة الصابون تكرار شطف } void pet() { // حيوان أليف على مسؤوليتك الخاصة } }
سنحصل على النتيجة التالية عند التشغيل
Main.java:1: error: cannot find symbol class Gorilla implements Animal { ^ symbol: class Animal Main.java:2: error: cannot find symbol bool feed(bool timeToEat) { ^ symbol: class bool location: class Gorilla Main.java:2: error: cannot find symbol bool feed(bool timeToEat) { ^ symbol: class bool location: class Gorilla 3 errors