使用静态类继承

时间:2016-09-12 12:37:18

标签: c# oop static abstract-class

我不知道这个问题是否有意义,或者这是一个天真的问题,但我还没有找到一个满意的答案。

我希望能够跨多个静态类共享代码。是否有#34;等同于"静态类的抽象基类(即我可以从另一个静态类继承)吗?如果没有,为什么不呢?是否有另一种在多个静态类之间共享代码的方式,其方式类似于对抽象基类的处理方式?

另外,静态类与"密封"相比如何?类?

2 个答案:

答案 0 :(得分:2)

你说得对。反思将显示static类同时为abstractsealed

  public static class MyStaticTest {
  }

  ...

  // I'm abstract
  Console.WriteLine(typeof(MyStaticTest).IsAbstract ? "I'm abstract" : "");

这就是为什么你不能创建一个实例(编译时错误):new MyStaticTest();。但是,反射会显示任何static类也是sealed

 // I'm sealed 
 Console.WriteLine(typeof(MyStaticTest).IsSealed ? "I'm sealed" : "");

所以你不能继承它(编译时错误):public class MyClass: MyStaticTest {..}。因此,使用static类所能做的就是声明static成员(静态字段,属性,方法等)。

答案 1 :(得分:0)

abstract关键字允许创建不完整的类和类成员,并且必须在派生类中实现,而sealed关键字使您能够阻止继承先前标记为虚拟的类或某些类成员。

我认为它完全适用于