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

Anonim

الظاهري مقابل مجردة

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

مجردة

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

فيرتوال

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

الفرق بين الظاهري والموجز

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