الفرق بين فئة الملخص والواجهة (مع الجدول)

الفرق بين فئة الملخص والواجهة (مع الجدول)

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

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

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

الفرق بين فئة الملخص والواجهة

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

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

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

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

ما هي فئة الملخص؟

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

تشمل الخصائص والميزات الرئيسية للفئات المجردة ما يلي:

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

في لغات مثل Java وC#، تحدد الكلمة الأساسية "abstract" الفئات المجردة. تعد الفئات المجردة أدوات قيمة لبناء تسلسلات هرمية للفئات ذات الصلة التي تشترك في الخصائص والسلوكيات المشتركة مع السماح بالتخصيص والتخصص في الفئات المشتقة.

ما هي الواجهة؟

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

تشمل الميزات والخصائص الرئيسية للواجهات ما يلي:

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

تُستخدم الواجهات على نطاق واسع في لغات مثل Java وC# وTypeScript لتحديد العقود بين الفئات وتنفيذها، مما يضمن التزامها بواجهة برمجة التطبيقات (API) المحددة (واجهة برمجة التطبيقات) ومشاركة السلوكيات الشائعة مع السماح بتنفيذات متنوعة.

جدول المقارنة بين فئة الملخص والواجهة

 معلمات التمايزفئة مجردةالسطح البيني
تجسيدلا يمكن إنشاء مثيل له مباشرة.لا يمكن إنشاء مثيل له مباشرة.
الهدفيعمل كمخطط للفئات الأخرى ويمكنه توفير كلا تعريفي الأسلوب مع أو بدون تطبيقات.لا يمكن إنشاء مثيل له مباشرة.
طرقيمكن أن تحتوي على طرق مجردة (غير منفذة)، أو طرق ملموسة (منفذة)، أو مزيج من الاثنين معًا.يحتوي فقط على توقيعات الطريقة دون أية تطبيقات؛ جميع الأساليب مجردة ضمنيا.
وراثة متعددةيدعم الميراث واحد. يمكن للفئة توسيع فئة مجردة واحدة فقط.يدعم الميراث المتعدد. يمكن للفئة تنفيذ واجهات متعددة.
الصانعينيمكن أن تحتوي على مُنشئات، والتي يتم استدعاؤها عند إنشاء مثيل للفئة الفرعية.لا يمكن أن يكون هناك منشئون لأنه لا يمكن إنشاء مثيل لهم مباشرة.
إعادة استخدام الكوديعزز إمكانية إعادة استخدام التعليمات البرمجية من خلال السماح بمشاركة التعليمات البرمجية المشتركة بين الفئات ذات الصلة.يعزز إمكانية إعادة استخدام التعليمات البرمجية من خلال تحديد مجموعات شائعة من السلوكيات التي يجب على الفئات تنفيذها.
مرونةيوفر التوازن بين التجريد وتوفير الوظائف المشتركة.يؤكد على التجريد وتحديد العقد.
استخدم حالاتمفيد لإنشاء تسلسلات هرمية للفئات ذات الصلة ذات السلوك والسمات المشتركة.مفيد لتحديد العقود التي تضمن توفير فئات التنفيذ لسلوكيات محددة.
مثالabstract class Shape { abstract double area(); }interface Drawable { void draw(); }
سيناريويكون هذا مفيدًا عندما تريد توفير فئة أساسية مشتركة مع بعض السلوكيات الافتراضية مع ترك طرق محددة ليتم تنفيذها بواسطة الفئات الفرعية.مفيد عندما تريد تحديد عقد أو مجموعة مشتركة من السلوكيات عبر فئات متعددة دون إملاء فئة أساسية مشتركة.

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

فئة الملخص:

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

واجهة:

  • يحتوي فقط على توقيعات الطريقة دون أية تطبيقات؛ جميع الأساليب مجردة ضمنيا.
  • يدعم الوراثة المتعددة، مما يعني أن الفصل يمكنه تنفيذ واجهات متعددة.
  • لا يمكن أن تحتوي على مُنشئات، حيث لا يمكن إنشاء مثيل للواجهات.
  • يحدد عقدًا يحدد مجموعة من الأساليب التي يجب أن توفرها فئات التنفيذ.
  • يؤكد على التجريد وتحديد مجموعة مشتركة من السلوكيات.
  • مفيد لتحديد العقود وضمان التزام الفئات بمتطلبات API المحددة.

وفي الختام

تسمح لك الفئة المجردة بإنشاء وظائف يمكن للفئات الفرعية تنفيذها أو تجاوزها ، بينما تسمح لك الواجهة بتحديد الوظيفة وليس تنفيذها. بينما يمكن للفصل أن يوسع فئة مجردة واحدة فقط ، فإنه يمكنه تنفيذ عدة واجهات.

الرقم المرجعي

  1. https://dl.acm.org/doi/abs/10.1145/1040305.1040314
  2. https://books.google.com/books?hl=en&lr=&id=8M3F_sSSvWkC&oi=fnd&pg=PR13&dq=+interface+java&ots=Qo15NiH18i&sig=Y6OESYd5a6G709ynnLGB4Ry97yU
النقطة 1
طلب واحد؟

لقد بذلت الكثير من الجهد في كتابة منشور المدونة هذا لتقديم قيمة لك. سيكون مفيدًا جدًا بالنسبة لي ، إذا كنت تفكر في مشاركته على وسائل التواصل الاجتماعي أو مع أصدقائك / عائلتك. المشاركة هي ♥ ️

الصورة الرمزية ندي

حول المستشفىنيدهي

أهلاً! أنا نيدهي.

هنا في EHL، كل ما يتعلق بالوصفات اللذيذة والسهلة للترفيه غير الرسمي. لذا تعال وانضم إلي على الشاطئ واسترخي واستمتع بالطعام.

اترك تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المشار إليها إلزامية *