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