في لغة Java، يتم تنفيذ الواجهات بواسطة الفئات من أجل استخدام الأساليب الموجودة في الواجهة. يحتاج الفصل إلى الإعلان عن أن الفصل ينفذ واجهة واحدة أو أكثر باستخدام الكلمة الأساسية التي يتم تنفيذها في إعلان الفصل. إذا قمت بتطبيق واجهات متعددة، فافصل بين أسماء الواجهات بفواصل.
على سبيل المثال:
classAimplementsPrintable, Addable//تطبق الفئة A الواجهات القابلة للطباعة والقابلة للإضافة classDogextendsAnimalimplementsEatable, Sleepable//تنفذ الفئة الفرعية Animal's Dog الواجهات القابلة للأكل والقابلة للنوم
إذا قامت فئة غير مجردة بتنفيذ واجهة، فيجب أن تتجاوز الفئة جميع الأساليب في الواجهة.
ملاحظة: نظرًا لأن الطرق الموجودة في الواجهة يجب أن تكون طرقًا مجردة عامة ، فعندما تتجاوز الفئة طريقة الواجهة، يجب ألا تقوم بإزالة المُعدِّل المجرد فحسب، بل يجب أيضًا توفير نص الطريقة، ويجب تعديل حقوق الوصول للطريقة بشكل واضح عام.
إذا قامت فئة غير مجردة تنفذ واجهة بتنفيذ طريقة في الواجهة، فهذا يعادل إعطاء الوظيفة السلوكية المحددة للطريقة. يمكن للمستخدمين أيضًا تخصيص الواجهات، ويمكن أن يتكون ملف Java المصدر من فئات وواجهات.
إذا أعلنت فئة ما عن تنفيذ واجهة ولكنها لا تتجاوز جميع الأساليب في الواجهة، فيجب أن تكون الفئة فئة مجردة، وهذا يعني أن الفئة المجردة يمكنها إما تجاوز الأساليب الموجودة في الواجهة أو امتلاك الأساليب الموجودة في الواجهة مباشرة واجهة.
تفاصيل:
يمكن للبرامج استخدام اسم الواجهة للوصول إلى الثوابت الموجودة في الواجهة، ولكن إذا قام الفصل بتنفيذ الواجهة، فيمكن للفئة استخدام الثوابت الموجودة في الواجهة مباشرة في نص الفصل.
عند تحديد واجهة، إذا كانت الكلمة الأساسية العامة مسبوقة بالواجهة العامة، فإنها تسمى واجهة عامة ، ويمكن تنفيذ الواجهة العامة بواسطة أي فئة إذا لم تتم إضافة الكلمة الأساسية العامة، فتسمى واجهة سهلة الاستخدام يمكن استخدام الواجهة السهلة مع تلك الفئة. يتم تنفيذ الواجهة بواسطة فئات في نفس الحزمة.
إذا كانت الفئة الأصلية تنفذ واجهة، فستقوم الفئة الفرعية بشكل طبيعي بتنفيذ الواجهة، وهذا يعني أن الفئة الفرعية لم تعد بحاجة إلى استخدام الكلمة الأساسية للإعلان عن تنفيذ هذه الواجهة.
يمكن أيضًا وراثة الواجهات، أي أنه يمكنك الإعلان عن أن الواجهة هي واجهة فرعية لواجهة أخرى من خلال الكلمة الأساسية الممتدة. وبما أن الأساليب والثوابت في الواجهة شائعة، فإن الواجهة الفرعية سوف ترث جميع الأساليب والثوابت في الواجهة الأم.
ملحوظة: جميع الواجهات التي توفرها Java موجودة في الحزم المقابلة، من خلال بيان الاستيراد، لا يمكن تقديم الفئات الموجودة في الحزمة فحسب، بل يمكن أيضًا تقديم الواجهات الموجودة في الحزمة.
على سبيل المثال:
importjava.io.*;// في هذا الوقت، لم يتم تقديم الفئات الموجودة في حزمة Java.io فحسب، بل تم أيضًا تقديم الواجهات الموجودة في الحزمة