logo

الفرق بين الطبقة المجردة والواجهة

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

ب+ الأشجار

ولكن هناك العديد من الاختلافات بين الفئة المجردة والواجهة الموضحة أدناه.

فئة مجردةواجهه المستخدم
1) يمكن للفصل الملخص لديها مجردة وغير مجردة طُرق.واجهة يمكن أن يكون مجردة فقط طُرق. منذ Java 8، يمكن أن يكون الأساليب الافتراضية والثابتة أيضًا.
2) فئة مجردة لا يدعم الميراث المتعدد .واجهه المستخدم يدعم الميراث المتعدد .
3) فئة مجردة يمكن أن تحتوي على متغيرات نهائية وغير نهائية وثابتة وغير ثابتة .واجهة لديها المتغيرات الثابتة والنهائية فقط .
4) فئة مجردة يمكن أن توفر تنفيذ الواجهة .واجهه المستخدم لا يمكن توفير تنفيذ فئة مجردة .
5) ال الكلمة الأساسية مجردة يستخدم للإعلان عن فئة مجردة.ال الكلمة الأساسية للواجهة يستخدم للإعلان عن الواجهة.
6) ان فئة مجردة يمكنه توسيع فئة Java أخرى وتنفيذ واجهات Java متعددة.ان واجهه المستخدم يمكنه تمديد واجهة Java أخرى فقط.
7) ان فئة مجردة يمكن تمديدها باستخدام الكلمة الرئيسية 'يمتد'.ان واجهه المستخدم يمكن تنفيذها باستخدام الكلمة الرئيسية 'الأدوات'.
8) إلى جافا فئة مجردة يمكن أن يكون هناك أعضاء في الفصل مثل خاص ومحمي وما إلى ذلك.يكون أعضاء واجهة Java عامًا بشكل افتراضي.
9) مثال:
شكل فئة مجردة عامة {
رسم الفراغ الملخص العام () ؛
}
مثال:
واجهة عامة قابلة للرسم {
رسم باطل () ؛
}

ببساطة، تحقق الطبقة المجردة تجريدًا جزئيًا (من 0 إلى 100٪) بينما تحقق الواجهة تجريدًا كاملاً (100٪).

اصطلاحات تسمية جافا

مثال على الطبقة المجردة والواجهة في Java

دعونا نرى مثالاً بسيطًا حيث نستخدم الواجهة والطبقة المجردة معًا.

 //Creating interface that has 4 methods interface A{ void a();//bydefault, public and abstract void b(); void c(); void d(); } //Creating abstract class that provides the implementation of one method of A interface abstract class B implements A{ public void c(){System.out.println('I am C');} } //Creating subclass of abstract class, now we need to provide the implementation of rest of the methods class M extends B{ public void a(){System.out.println('I am a');} public void b(){System.out.println('I am b');} public void d(){System.out.println('I am d');} } //Creating a test class that calls the methods of A interface class Test5{ public static void main(String args[]){ A a=new M(); a.a(); a.b(); a.c(); a.d(); }} 
اختبره الآن

انتاج:

 I am a I am b I am c I am d