关于密封类成员函数的问题

kookboo 2009-04-14 04:51:38
C#高级编程,关于sealed方法,有这么一段描述“要在方法或属性上使用sealed关键字,必须先在基类上把他重写。如果基类上不希望有重写的方法或属性,就不要把他声明为vritual。”
一、如果讲的更细一点,假设要在类A的方法或属性上使用关键字sealed,那么上句话中的基类是指类A的基类???此处说的基类是不是就是类A啊?
二、后边一句:如果基类上不希望有重写的方法或属性,就不要把他声明为vritual,我可不可以这样理解,即如果基类有不希望被派生类重写的方法或属性

ps:我感觉这本书有些语句描述的实在是太晦涩了,还是我的理解力太低...
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chxii 2011-04-10
  • 打赏
  • 举报
回复
override sealed ,方法重载必须前边加上override。并且该方法有可以重载的基类
sushou2009 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cja03 的回复:]
记住sealed就是“到此为止”“断子绝孙”的意思就行了。
一个类加上sealed,它将不会再派生
方法或属性加上sealed,继承这个类的类将无法重写这个方法或属性


不管继承了多少代,只在有一个地方(类、方法、属性)加上sealed,
那么加上sealed的东西(类、方法、属性)那就那里形成“终结版”了。
[/Quote]
形象!UP!
ismezy2002 2009-04-14
  • 打赏
  • 举报
回复
有时看半天不如试一下

第一个问题

MSDN是这样描述的
sealed 修饰符可以应用于类、实例方法和属性。密封类不能被继承。密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写。当应用于方法或属性时,sealed 修饰符必须始终与 override(C# 参考)一起使用。

sealed应用于方法或属性时,sealed 修饰符必须始终与 override,也就是说sealed修饰符必须用于可以override的方法或属性。“密封方法会重写基类中的方法”中的基类指的sealed方法所处在类的父类,也就是你指的A类的基类。

第二个问题大至是你理解的意思。
我的理解是 如果基类有不需要被派生类重写的方法或属性时就不要把他声明为vritual。

cja03 2009-04-14
  • 打赏
  • 举报
回复
记住sealed就是“到此为止”“断子绝孙”的意思就行了。
一个类加上sealed,它将不会再派生
方法或属性加上sealed,继承这个类的类将无法重写这个方法或属性


不管继承了多少代,只在有一个地方(类、方法、属性)加上sealed,
那么加上sealed的东西(类、方法、属性)那就那里形成“终结版”了。
CeShenBeiWang 2009-04-14
  • 打赏
  • 举报
回复
up

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧