اذهب إلى المحتوى

السؤال

نشر

لاني الذي أعرفة انه في جافا لا يوجد بها تعدد وراثة ولكن نستطيع ان نعمل implement لأكثر من interface  أنا الان لدي كلاس واريد ان ارث فيه من اكثر من كلاس فهل أحولهم interface لتكونهناك مرونه أكبر؟ ام ان هناك مشكلة؟ واريد توضيح متى استخدم الclass ومتى استخدم الinterface في java؟ 

Recommended Posts

  • 1
نشر

الصف: هو مخطط أو نموذج أولي يقوم المبرمج بكتابته لإتاحة إمكانية إنشاء أغراض (Objects) منه لاحقاً. فهو يجمع كافة الأغراض التي لها نفس النوع والتي تتشارك بخصائص ودوال.

الواجهة Interface: مشابهة للصف من حيث تجميع الدوال والخصائص بفارق بسيط أن الدوال تكون مجرّدة أي بدون محتواها (body) بشكل افتراضي.

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

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

بعض الفروقات الأخرى:

  • يمكن انشاء الصف بشكل صريح (instantiated) وكذلك يمكن إنشاء أغراض من هذا الصف، أما الواجهة لا تسمح إنشاء أغراض منها.
  • الصفوف لا تسمح بالوراثة المتعددة، أما الواجهات تسمح بذلك
  • يسمح للصف بالوراثة من صف آخر، أما الواجهة لا يمكن أن ترث من صف آخر.
  • الصف يمكن أن يحوي باني أو (constructor) أما الواجهة لا تحوي باني لأنه لا يمكن إنشاء أغراض منها.
  • الصف يتيح عدة مستويات لتعريف الخصائص والدوال ضمنه (public, private, protected, default) أما الواجهة فجميع الخصائص والدوال ضمنها هي من نوع public
  • المتغيرات ضمن الصفوف يمكن أن تأخذ أحد الأنواع (static, final) وممكن ألا تأخذ أي نوع من هذين النوعين. أما في الواجهة فجميع المتغيرات هي من نوع static أو final حصراً.
  • 0
نشر

السلام عليكم قد تكون اجابتي عامه
كما ذكرت اخي محمد في جافا لا يمكن للكلاس العادي أن يرث من أكثر من كلاس في نفس الوقت لأنه يمكن للكلاس أن يفعل extends لكلاس واحد فقط.
من أجل ذلك عمل مطوروا لغة جافا على إبتكار نوع جديد يشبه الكلاس العادي و يسمح لنا بتطبيق مبدأ تعدد الوراثة الذي يعتبر شيء مهم جداً في لغات البرمجة. هذا النوع الجديد يسمى interface يستخدم الإنترفيس كوسيط لتطوير البرامج, و المقصود هنا أن المبرمج يستخدم الإنترفيس إذا أراد جعل برنامجه قابلاً للتطوير بكل مرونة سواءً لأجل نفسه أو من قبل مبرمجين آخرين, فهو يستخدم الإنترفيس لإجبار المبرمجين على اتباع أسلوب محدد يضمن توافق الكودات التي سيكتبها المطورون الآخرون مع كودات البرنامج الأساسية.

إذاً الإنترفيس يستخدم لتجهيز أسلوب يمكن السير عليه لربط الكلاسات بأسلوب سهل, منطقي و مفهوم. سترى قوة الإنترفيس الحقيقية مع  الـ Polymorphism

تابع هذا المصدر لفهم الانترفيس أكثر : https://harmash.com/tutorials/java/interfaces

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...