sealed字段、方法、类
来源:互联网 发布:购买子域名 编辑:程序博客网 时间:2024/06/05 19:25
原文地址:http://www.dingos.cn/index.php?topic=1048.0
sealed 修饰符可应用于类、方法和变量。
sealed 在应用于类、方法和变量时意义是不同的,但本质是一样的:sealed 表示不可改变。
声明为sealed 的类不能被继承。
int j = 1;
void f() {}
}
class Further : TestFinal {}
当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。
还可以在重写基类中的虚方法或虚属性的方法或属性上使用 sealed 修饰符。这将能够允许类从您的类继承,并防止它们重写特定的虚方法或虚属性。在下面的示例中,C 从 B 继承,但 C 无法重写在 A 中声明并在 B 中密封的虚函数 F。
protected virtual void F2() { Console.WriteLine("A.F2");}
}
class B : A{
sealed protected override void F() { Console.WriteLine("B.F");}
protected override void F2() {Console.WriteLine("A.F3");}
class C : B{
// Attempting to override F causes compiler error CS0239.
// protected override void F() { Console.WriteLine("C.F"); }
// Overriding F2 is allowed.
protected override void F2() { Console.WriteLine("C.F2"); }
}
注意:
当在类中定义新的方法或属性时,通过不将这些方法或属性声明为 virtual,可防止派生类重写这些方法或属性。
将 abstract 修饰符用于密封类是错误的做法,因为抽象类必须由提供抽象方法或属性的实现的类继承。
当应用于方法或属性时,sealed 修饰符必须始终与 override 一起使用。
由于结构是隐式密封的,因此它们不能被继承。
若要确定是否密封类、方法或属性,通常应考虑以下两点:
- sealed字段、方法、类
- C# sealed 方法
- 密封类(sealed class)和密封方法(sealedmethod)
- 温故知新(3)密封类和密封方法sealed
- sealed密封类
- sealed
- sealed
- sealed
- Sealed
- sealed
- C#中的密封类(sealed)
- C# 参考 : sealed 密封类
- C#中的密封类(sealed)
- sealed密封类的使用
- 类、字段和方法
- 类、字段、方法
- C#中的密封类(sealed)
- sealed关键字——密封类
- 超强文本编辑器SciTE配置方法详细实例
- 60条令你大吃一惊的小常识
- C++标准I/O库
- System.Environment.CurrentDirectory 和 AppDomain.CurrentDomain.BaseDirectory的区别
- LUA基础
- sealed字段、方法、类
- C++ 扩展和嵌入 Python
- 使用PreparedStatement的Batch功能
- typedef 的使用
- 什么是单点登录?
- apache 开启htaccess 写法 功能
- LUA特性
- web developer tips (75):PostBack后保持滚动条的位置
- 数字城市地理信息公共平台软件测评大纲