[C#] لماذا لا يتم إغلاق الطبقات بشكل افتراضي؟


Answers

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

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

Question

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

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

هناك فرصة كبيرة أنني لم أفكر هذا من خلال صحيح، على الرغم من ذلك يرجى أن تكون إنسانية!




هل يمكن أن تجعل على الأرجح مجرد العديد من الحجج لصالح مختومة من قبل الافتراضي كما كان يمكن ضده. إذا كان الأمر كذلك، فإن أحدا ينشر السؤال المعاكس.




80٪ من ملامح ورد تذهب غير المستخدمة. 80٪ من الطبقات لا تحصل على وراثة من. في كلتا الحالتين، مرة واحدة في حين، يأتي شخص ما على طول ويريد استخدام أو إعادة استخدام ميزة. لماذا يحظر المصمم الأصلي إعادة الاستخدام؟ دع المستخدم يقرر ما يريد إعادة استخدامه.




والطبقات المختومة تمنع الميراث ، وبالتالي فهي إغراق أو. انظر هذا رانت للتفاصيل ؛-)