(1) يمكن أن تحتوي كل من الفئات والواجهات المجردة على طرق مجردة.
(2) يمكن أن تحتوي الواجهات على ثوابت فقط، وليس متغيرات، بينما يمكن أن تحتوي الفئات المجردة على ثوابت ومتغيرات.
(3) يمكن أن تحتوي الفئات المجردة أيضًا على أساليب غير مجردة، لكن لا يمكن للواجهات ذلك.
عند تصميم برنامج، يجب عليك تحديد ما إذا كنت تريد استخدام الفئات المجردة أو الواجهات بناءً على تحليل محدد. بالإضافة إلى توفير أساليب مجردة مهمة تحتاج إلى تجاوزها بواسطة الفئات الفرعية، توفر الفئات المجردة أيضًا متغيرات وأساليب غير مجردة يمكن أن ترثها الفئات الفرعية.
إذا كانت مشكلة معينة تحتاج إلى حل أفضل باستخدام الوراثة، على سبيل المثال: بالإضافة إلى تجاوز الطريقة المجردة للفئة الأصلية، تحتاج الفئة الفرعية أيضًا إلى وراثة بعض المتغيرات أو وراثة بعض الطرق المهمة غير المجردة من الفئة الأصلية، يمكنك فكر في استخدام النوع المجرد. إذا كانت هناك مشكلة معينة لا تتطلب وراثة، ولكنها تتطلب فقط عدة فئات لتوفير تفاصيل تنفيذ بعض الطرق المجردة المهمة، فيمكنك التفكير في استخدام الواجهات.
ملاحظة : تدعم واجهة JDK1.8 الطرق الثابتة والأساليب الافتراضية.
1) لا يمكن استخدام الواجهات لإنشاء كائنات.
2) لا تحتوي الواجهة على طريقة إنشاء.
3) يجب أن تكون كافة الأساليب في الواجهة أساليب مجردة.
4) لا يمكن أن تحتوي الواجهات على متغيرات الأعضاء، باستثناء المتغيرات الثابتة والنهائية.
5) لا يرث الفصل الواجهة، بل ينفذها الفصل.
6) تدعم الواجهة الوراثة المتعددة.
تعني الطريقة الافتراضية أن الواجهة يمكن أن تحتوي على طرق تنفيذ ولا تحتاج إلى فئة تنفيذ لتنفيذ أساليبها، ما عليك سوى إضافة الكلمة الأساسية الافتراضية أمام اسم الطريقة لتنفيذ الطريقة الافتراضية. توفر الطرق الافتراضية طريقة لتوسيع الواجهة دون كسر التعليمات البرمجية الموجودة.
(1) يمكن أن تحتوي الواجهة على طرق افتراضية متعددة وطرق ثابتة.
(2) يتم استدعاء الطريقة الافتراضية من خلال المثيل، ويتم استدعاء الطريقة الثابتة من خلال اسم الواجهة.
(3) لا يمكن استخدام الكلمة الأساسية الافتراضية إلا في الواجهات.
(4) يمكن وراثة الطرق الافتراضية إذا ورثت واجهات متعددة وواجهات متعددة تحدد عدة طرق افتراضية متماثلة، فستحتاج فئة التنفيذ إلى تجاوز الطرق الافتراضية، وإلا سيتم الإبلاغ عن خطأ.
(5) لا يمكن وراثة الطرق الثابتة وتجاوزها، لذا لا يمكن استدعاؤها إلا من خلال الواجهة المحددة.
ملاحظة : بعد JDK 1.9، يُسمح بتعريف الأساليب على أنها خاصة، بحيث لا تؤدي بعض الرموز المعاد استخدامها إلى كشف الطرق.