请教c#/vb.net高手,为什么.net里面会有sealed inheritable这两个修饰符?

我知道它的意思是不可继承,但是为什么要规定它不可继承呢,如果可以继承用户也许把它继承后还可以增加点什么功能,如果用户继承它没有什么用,用户自然不会继承,那还有什么必要用这... 我知道它的意思是不可继承,但是为什么要规定它不可继承呢,如果可以继承用户也许把它继承后还可以增加点什么功能,如果用户继承它没有什么用,用户自然不会继承,那还有什么必要用这两个修饰符?总之觉得多余。 展开
 我来答
百度网友a97606d
2013-06-05 · TA获得超过190个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:156万
展开全部
你只从使用者的角度去考虑,当然觉得没有必要。
如果是类的创建者呢? 创建一个类的时候如果不想被继承(因为天气不好,心情不好,打牌输钱了等等原因),这时候这个修饰符就有用了。
追问
有意思,不过既然这是在探讨技术问题,可不可以说点技术上的必要性?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秦爱传c5
2013-06-05 · TA获得超过2052个赞
知道小有建树答主
回答量:635
采纳率:50%
帮助的人:316万
展开全部
自己编写的代码自己用,讨论是否使用sealed没什么意义
但当自己开发的库、类是让别人用的,就有必要用到sealed了

密封类可以防止被篡改,重写其中的成员,使效果符合预期;
同时用sealed修饰的类效率上来说稍微比非sealed高,因为减少了编译器的检验。

但是否使用密封类,在一定程度上只是一种标准化的思维,就好像开发项目用到三层架构、mvc、工厂模式或者其他架构,使用架构只是一种规范化、条理化的体现,本身它并不是必要的,只是面向对象编程思想的一部分。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
代号极光
2013-06-05 · TA获得超过104个赞
知道答主
回答量:65
采纳率:0%
帮助的人:49万
展开全部
举个列子,别人给你的软件开发插件的时候,你希望他继承你的最底层的东西吗,你只需要给他封装一个模块让他去实现就好了
追问
为什么不给继承呢,最底层的object都让继承了。
追答
一个开发插件的人把父类全部继承了,不是可以随便改变这个系统了?
别人放一个木马上去不久悲剧了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daawhjhghj
2013-06-05
知道答主
回答量:25
采纳率:0%
帮助的人:3.6万
展开全部
有些东西部是最底层但也不能随便集成
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式