155
  1. 有没有在静态类中实现的类?方法:

    static class ABC : Anyclass
    
  2. 是否有任何类可以在密封类和静态类中继承?
    方法:

    static class ABC : AClass {}
    

    sealed class ABC : AClass {}
    

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

4

6 回答 6

677

这可能会帮助您:

+--------------+---+-------------------------+------------------+---------------------+
|  Class Type  |   | Can inherit from others | Can be inherited | Can be instantiated | 
|--------------|---|-------------------------+------------------+---------------------+
| normal       | : |          YES            |        YES       |         YES         |
| abstract     | : |          YES            |        YES       |         NO          |
| sealed       | : |          YES            |        NO        |         YES         |
| static       | : |          NO             |        NO        |         NO          |
+--------------+---+-------------------------+------------------+---------------------+
于 2013-04-25T14:28:02.310 回答
40

简单来说

静态类

一个类可以声明为静态的,表明它只包含静态成员。无法使用 new 关键字创建静态类的实例。加载包含类的程序或命名空间时,.NET Framework 公共语言运行时 (CLR) 会自动加载静态类。

密封类

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

于 2013-04-25T14:30:53.690 回答
19

你可以让一个sealed类从另一个类继承,但你不能一个sealed类继承:

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

一个static类不能从其他类继承。

于 2013-04-25T14:25:02.083 回答
5

您可以简单地将它们区分为:

       Sealed Class       |        Static Class
--------------------------|-------------------------
it can inherit From other | it cannot inherit From other
classes but cannot be     | classes as well as cannot be
inherited                 | inherited
于 2018-10-22T11:37:25.977 回答
4

简单的回答是密封类不能用作基类

我试图向您展示密封类是下面代码中的派生类

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

另一个密封特性只能通过它的实例访问。(你不能从它继承)

 class Program
{
    static void Main(string[] args)
    {
        SealedClass objSeald = new SealedClass();
        objSeald.Name = "Blah blah balh";
        objSeald.Print();

    }
}
于 2017-03-05T11:47:07.577 回答
0

1 - 不,您不能实现静态类。

2 - 不,您不能从静态或密封类继承

于 2017-09-26T08:23:18.427 回答