有没有在静态类中实现的类?方法:
static class ABC : Anyclass
是否有任何类可以在密封类和静态类中继承?
方法:static class ABC : AClass {}
和
sealed class ABC : AClass {}
我可能在某种程度上是错的吗?
这可能会帮助您:
+--------------+---+-------------------------+------------------+---------------------+
| 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 |
+--------------+---+-------------------------+------------------+---------------------+
简单来说
静态类
一个类可以声明为静态的,表明它只包含静态成员。无法使用 new 关键字创建静态类的实例。加载包含类的程序或命名空间时,.NET Framework 公共语言运行时 (CLR) 会自动加载静态类。
密封类
密封类不能用作基类。密封类主要用于防止派生。因为它们永远不能用作基类,所以一些运行时优化可以使调用密封类成员的速度稍快一些。
你可以让一个sealed
类从另一个类继承,但你不能从一个sealed
类继承:
sealed class MySealedClass : BaseClass // is ok
class MyOtherClass : MySealedClass // won't compile
一个static
类不能从其他类继承。
您可以简单地将它们区分为:
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
简单的回答是密封类不能用作基类。
我试图向您展示密封类是下面代码中的派生类
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();
}
}
1 - 不,您不能实现静态类。
2 - 不,您不能从静态或密封类继承