静态和密封类的差异
-
有什么类在静态类中实现吗? 手段:
static class ABC : Anyclass
-
有没有可以在密封类和静态类中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