. net本身有不能被继承的类吗?
本文关键字:继承 不能 net | 更新日期: 2023-09-27 18:11:54
我很想知道是否有c#的样本。我想不出一个单独的例子来禁止继承,而不是出于一些商业目的,所以我想知道c#本身的一些真实世界的例子。
我知道密封类,我只是在寻找c#本身的一些例子,而不是隐式密封的值类型和结构体。
是的。所有的类都是sealed
,它们不能被用作基类。
关于sealed
课程的更多信息,请点击这里。
.NET中sealed
类的例子如下:
- 系统。字符串
- System.Data.SqlClient.SqlCommand
- System.Net.HttpListener
不能继承任何结构体、sealed
类或static
类。c#还禁止使用一些"特殊"类型,包括Delegate
和Enum
,因为它提供了使用这些类型的其他结构。
System.String
。
如果你想继承它,像这样:
public class CustomString : String { }
你会看到这个错误:
'CustomString':不能从密封类型'string'派生
在。net框架中还有许多的例子。我使用反射做了一个快速比较,仅在mscorlib
(v4.0)中就有856个密封公共类型,而非密封公共类型(包括接口)有619个。
除了sealed
类,static
类也不能被继承,详见。例如:System.Linq.Enumerable
.
public static class Inherited : System.Linq.Enumerable
{
}
这个也不工作。