يتم استخدام كل من الطبقة المجردة والواجهة لتحقيق التجريد حيث يمكننا الإعلان عن الطرق المجردة. لا يمكن إنشاء مثيل للطبقة المجردة والواجهة.
ب+ الأشجار
ولكن هناك العديد من الاختلافات بين الفئة المجردة والواجهة الموضحة أدناه.
فئة مجردة | واجهه المستخدم |
---|---|
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