الفرق بين الظاهري والملخص

الفرق بين الظاهري والملخص
الفرق بين الظاهري والملخص

فيديو: الفرق بين الظاهري والملخص

فيديو: الفرق بين الظاهري والملخص
فيديو: خدمات الحوسبة السحابية | SaaS, PaaS, IaaS 2024, يوليو
Anonim

Virtual vs Abstract

Virtual و Abstract هما كلمتان أساسيتان تستخدمان في معظم لغات البرمجة الموجهة للكائنات (OO) مثل Java و C. على الرغم من وجود اختلافات طفيفة في ما تعنيه في لغات مختلفة ، فإن كل من الكلمات الرئيسية الافتراضية والمجردة توفر إحساسًا بالتنفيذ الجزئي للكيانات التي ترتبط بها.

ملخص

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

الظاهري

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

الفرق بين الظاهري والملخص

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

موصى به: