E. *_*son 2 .net c# inheritance msdn class
我正在阅读 .NET 文档,并遇到了该类IdentityReference,其中指出:
表示身份,并且是 NTAccount 和 SecurityIdentifier 类的基类。该类不提供公共构造函数,因此不能被继承。
NTAccount我的困惑是,它说它不能被继承,但它还声明它是和类的基类SecurityIdentifier。根据我的理解,这些类都是继承的IdentityReference。
是文档不正确,还是我的理解不完整?文档是否应该说“此类不提供公共构造函数,因此无法实例化”?
文档是正确的。子类必须能够调用基类构造函数,无论是默认的无参数构造函数还是其他构造函数。但该类IdentityReference没有公共或受保护的构造函数。如果您尝试继承它,您将收到编译错误。
该类有一个内部构造函数,它允许其自己的程序集中的类从它继承
public abstract class IdentityReference
{
internal IdentityReference()
{
// exists to prevent creation user-derived classes (for now)
}
Run Code Online (Sandbox Code Playgroud)
NTAccount是在同一程序集中定义的,因此它可以继承自IdentityReference:
public sealed class NTAccount : IdentityReference
{
...
Run Code Online (Sandbox Code Playgroud)
该类sealed虽然如此,但其他程序集也不能从它继承
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |