静态和密封类的差异

  1. 有什么类在静态类中实现吗? 手段:

    static class ABC : Anyclass 
  2. 有没有可以在密封类和静态类中inheritance的类?
    手段:

     static class ABC : AClass {} 

     sealed class ABC : AClass {} 

我可能在某种程度上是错的吗?

这可以帮助你:

 +-------------------------+---+--------+--------+--------+----------+ | Class Type | | normal | static | sealed | abstract | +-------------------------+---+--------+--------+--------+----------+ | Can be instantiated | : | YES | NO | YES | NO | | Can be inherited | : | YES | NO | NO | YES | | Can inherit from others | : | YES | NO | YES | YES | +-------------------------+---+--------+--------+--------+----------+ 

简而言之,

静态类

一个类可以声明为静态的,表明它只包含静态成员。 使用new关键字创build静态类的实例是不可能的。 当包含该类的程序或名称空间被加载时,静态类将由.NET Framework公共语言运行库(CLR)自动加载。

密封类

密封的类不能用作基类。 密封类主要用于防止派生。 因为它们永远不能用作基类,所以一些运行时优化可以使调用密封类成员稍快。

你可以让一个sealed类inheritance另一个类,但你不能一个sealed类inheritance:

 sealed class MySealedClass : BaseClass // is ok class MyOtherClass : MySealedClass // won't compile 

static类不能从其他类inheritance。

简单的答案是一个密封的类不能被使用(如)一个基类。

我想告诉你,密封类是在下面的代码中的派生类

  public sealed class SealedClass : ClassBase { public override void Print() { base.Print(); } } 

而另一个密封的function是只有访问与实例从它。 例如

  class Program { static void Main(string[] args) { SealedClass objSeald = new SealedClass(); objSeald.Name = "Amin Saadati"; objSeald.Print(); } } 

密封类用于限制面向对象编程的inheritance特性。 一旦一个类被定义为一个封闭的类,这个类就不能被inheritance。 在C#中,密封修饰符用于将类定义为密封。 在Visual Basic .NET中,NotInheritable关键字用于密封的目的。

1 – 不,你不能实现一个静态类。

2 – 不,你不能从静态或密封类inheritance