ما هو الفرق بين فئة Abstract و Interface في Java؟



ستساعدك هذه المقالة في فهم الاختلاف الرئيسي بين فئة الملخص والواجهة في جافا بمساعدة برنامج مثال.

الفصول المجردة والواجهات هما لبنات البناء الرئيسيةمن . على الرغم من أن كلاهما يستخدم بشكل أساسي في التجريد ، إلا أنهما مختلفان تمامًا عن بعضهما البعض ولا يمكن استخدامهما بالتبادل. في هذه المقالة ، دعنا نتعرف على الفرق بين فئة الملخص والواجهة في جافا.

الموضوعات التي تمت مناقشتها في هذه المقالة هي كما يلي:





لفهم الاختلافات بين فئة الملخص والواجهة في ، عليك أن تعرف ما هي فئة مجردة وما هي الواجهة. لذا ، فلنبدأ بمناقشة ماهية هؤلاء.

ما هي فئة Abstract في Java؟

في أي لغة برمجة ، التجريد يعني إخفاء التفاصيل غير ذات الصلة عن المستخدم للتركيز فقط على التفاصيل الأساسية لزيادة الكفاءة وبالتالي تقليل التعقيد. في Java ، يتحقق التجريد باستخدام فصول مجردة . فئة مجردة تلتقط الخصائص المشتركة للفئات الفرعية وقد تحتوي أو لا تحتوي على أي طريقة مجردة. لا يمكن إنشاء مثيل له ولكن يمكن استخدامه فقط كطبقة فائقة من خلال فئاته الفرعية. إليك مثال لبرنامج يوضح فئة مجردة:



ملحوظة: ان طريقة مجردة ، هي طريقة لم يتم تنفيذها وتضيفهاعدم اكتمال ل صف دراسي .

package MyPackage // abstract class abstract class الحيوان {String AnimalName = '' Animal (String name) {this.AnimalName = name} // تعلن عن طرق غير مجردة // لها تطبيق افتراضي عام باطل BasicInfo (تفاصيل السلسلة) {System. out.println (this.AnimalName + '' + details)} // الطرق المجردة التي سيتم // تنفيذها بواسطة فئتها الفرعية (فئاتها) موطن الفراغ العام المجرد () تنفس الفراغ العام المجرد ()} فئة Terrestrial تمتد الحيوان {// المُنشئ Terrestrial (String name) {super (name)}Override public void hostat () {System.out.println ('leave on land and')}Override public void respiration () {System.out.println ('respire من خلال الرئتين أو القصبة الهوائية. ')}} class Aquatic extends Animal {// constructor Aquatic (String name) {super (name)}Override public void universat () {System.out.println (' يترك في الماء و ') }Override public void respiration () {System.out.println ('respire through gills or their skin.')}} class AbstractClassDemo {public static voi d main (سلسلة [] args) {// إنشاء كائن فئة الأرض // واستخدام مرجع فئة الحيوان. كائن حيواني 1 = كائن أرضي جديد 1.BasicInfo ('كائنات أرضية ، هم') object1.habitat () object1.respiration () System.out.println ('') // إنشاء كائنات فئة الدائرة حيوان object2 = الكائنات المائية الجديدة ('الأسماك') object2.BasicInfo ('هي كائنات حقيقية ، هم') object2.habitat () object2.respiration ()}}

انتاج |

البشر كائنات أرضية ، يغادرون على الأرض ويتنفسون من خلال الرئتين أو القصبة الهوائية. الأسماك كائنات عاقلة تترك في الماء وتتنفس من خلال الخياشيم أو الجلد.

ال معلومات أساسية () هي طريقة يتقاسمها ساكن الأرض و مائية الطبقات. منذ فئة الحيوانات لا يمكن أن تبدأ ، نحن نصنع كائنات ساكن الأرض و مائية فصول لغرض البرمجة. بعد ذلك ، لدينا واجهات.



الواجهة في Java

طريقة أخرى لتحقيق التجريد في Java باستخدام ملفات واجهات .الواجهة عبارة عن مجموعة من الأساليب المجردة ، وليس لها أي ملموس ، على عكس فئة مجردة. ولكن بخلاف فئة مجردة ، توفر الواجهة تجريدًا كاملاً في Java. يمكن أن تحتوي على كل من الطرق والمتغيرات تمامًا مثل الفصل. ومع ذلك ، فإن الطرق المعلنة في الواجهة هي مجردة بشكل افتراضي.ها هي إظهار فئة مجردة:

كيفية استخدام جافا سوينغ
package MyPackage interface Animals {// abstract methods void hostat () void respiration ()} class TerrestrialA implements Animals {String AnimalName = '' // constructor TerrestrialA (String name) {this.AnimalName = name}Override public void Habat () {System.out.println (this.AnimalName + 'leave on land and')}Override public void respiration () {System.out.println ('respire through lungs or trachea.')}} class AquaticA implements Animals {String AnimalName = '// constructor AquaticA (String name) {this.AnimalName = name}Override public void Habat () {System.out.println (this.AnimalName +' leave in water and ')}Override public void respiration () {System.out.println ('respire through gills or their skin.')}} class JavaInterfaceDemo {public static void main (String [] args) {// إنشاء كائن فئة الأرض // واستخدام مرجع فئة الحيوان . كائن الحيوانات 1 = جديد TerrestrialA ('Humans') object1.habitat () object1.respiration () System.out.println ('') // إنشاء كائنات من فئة دائرة الحيوانات object2 = جديد AquaticA ('Fishes') object2.habitat () object2.respiration ()}}

انتاج |

يغادر البشر على الأرض ويتنفسون من خلال الرئتين أو القصبة الهوائية. تترك الأسماك في الماء وتتنفس من خلال الخياشيم أو جلدها.

إذا لم يكن لديك أي رمز مشترك بين ملف الطبقات ، ثم يمكنك الانتقال إلى الواجهة. تشبه الواجهة مخططًا لفئة لأنها لا تحتوي على أي طرق غير مجردة.

من المحتوى أعلاه ، ربما لاحظت الفرق الرئيسي بين فئة الملخص والواجهة في . وهو ، على عكس فئة مجردة ، توفر الواجهة كاملة التجريد في جافا. فلنبدأ الآن وسرد الاختلافات الأخرى.

فئة مجردة مقابل الواجهة

يسرد الجدول أدناه الاختلافات الرئيسية بين فئة الملخص والواجهة.

معامل فئة مجردة واجهه المستخدم

تطبيق الطريقة الافتراضية

يمكن أن يكون لها طريقة تنفيذ افتراضية

توفر الواجهات تجريدًا خالصًا ولا يمكن أن يكون لها تنفيذ على الإطلاق

المتغيرات

قد يحتوي على متغيرات غير نهائية.

المتغيرات المعلنة في الواجهة نهائية بشكل افتراضي

الكلمة المستخدمة

يمكن تمديد فئة مجردة باستخدام الكلمة الأساسية 'تمتد

يجب تنفيذ الواجهة باستخدام الكلمات الرئيسية mplements

معدِّلات الوصول

يستطيعلديك معدل عام ومحمي وخاص وافتراضي

طرق الواجهة عامة بشكل افتراضي. لا يمكنك استخدام أي معدّل وصول آخر معه

سرعة التنفيذ

إنه أسرع من الواجهة

الواجهة أبطأ إلى حد ما وتتطلب مراوغة إضافية

كيفية رفع رقم إلى قوة في جافا

فئة عادية

يمكن أن تمتد فقط فئة مجردة واحدة

يمكن تنفيذ واجهات متعددة

المنشئون

يمكن أن يكون للفصل المجرد منشئون

لا يمكن أن تحتوي الواجهة على مُنشئين

تعدد الميراث

يمكن للفئة المجردة أن تمد فئة أخرى ويمكنها تنفيذ واجهات Java متعددة

يمكن للواجهة تمديد واجهة Java أخرى فقط

حسنًا ، أنت الآن الاختلافات الرئيسية بين فئة الملخص والواجهة في Java. ولكن ، كيف تقرر متى تستخدم أيًا من هذين؟

متى تستخدم فئة Abstract ومتى تستخدم الواجهة؟

ضع في اعتبارك استخدام فئات مجردة في الحالات التالية:

  • إذا كانت لديك بعض الفئات ذات الصلة التي تحتاج إلى مشاركة ملف نفس سطور الكود
  • عندما تريد تحديد ملف الحقول غير الثابتة أو غير النهائية
  • عندما يكون هناكالأساليب أو المجالاتأو تطلب معدلات الوصول بخلاف الجمهور (مثل المحمية والخاصة)

ضع في اعتبارك استخدام الواجهات في الحالات التالية:

  • عندما تريد تحقيق مجرد تجريد
  • إذا كنت تريد توظيف مضاعف ، بمعنى آخر،تنفيذ أكثر من واجهة
  • عندما تريد تحديد سلوك نوع بيانات معين ، ولكن لا تقلق بشأن من ينفذ سلوكه.

هذا يقودنا إلى نهاية هذا المقال. لقد قمت بتغطية أحد أسئلة Java الأكثر شيوعًا في المقابلة ، وهو الفرق بين فئة الملخص والواجهة في Java.

تأكد من ممارسة أكبر قدر ممكن وإعادة تجربتك.

تفحص ال من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم نحن هنا لمساعدتك في كل خطوة في رحلتك ، لكي تصبح بجانب أسئلة المقابلة في جافا هذه ، توصلنا إلى منهج مصمم للطلاب والمهنيين الذين يريدون أن يصبحوا مطور جافا.

لديك سؤال لنا؟ يرجى ذكرها في قسم التعليقات في 'واجهة خريطة جافا' مقال وسنعاود الاتصال بك في أقرب وقت ممكن.