是否有任何类在静态类中实现?意思是:
static class ABC : Anyclass
是否有任何类可以在密封类和静态类中继承? 意思是:
static class ABC : AClass {}
和
sealed class ABC : AClass {}
我可能在某种程度上是错的吗?
答案 0 :(得分:609)
这可能会对您有所帮助:
+--------------+---+-------------------------+------------------+---------------------+
| 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 |
+--------------+---+-------------------------+------------------+---------------------+
答案 1 :(得分:37)
简单来说就是
静态类
一个类可以声明为static,表示它只包含 静态成员。无法创建静态实例 使用new关键字的类。静态类会自动加载 由.NET Framework公共语言运行时(CLR)实现的程序 或者加载了包含该类的命名空间。
密封类
密封类不能用作基类。密封课程 主要用于防止推导。因为它们永远不会被使用 作为基类,一些运行时优化可以使调用密封 班级成员略快。
答案 2 :(得分:18)
您可以让sealed
类从其他类继承,但不能从 sealed
类继承:
sealed class MySealedClass : BaseClass // is ok
class MyOtherClass : MySealedClass // won't compile
static
类不能从其他类继承。
答案 3 :(得分:2)
简单的答案是密封类不能用作基类。
我试图向您展示密封类是下面代码中的派生类
UIScrollView
和另一个密封功能只能通过它的实例访问。(你不能从它继承)
public sealed class SealedClass : ClassBase
{
public override void Print()
{
base.Print();
}
}
答案 4 :(得分:1)
1 - 不,你不能实现静态类。
2 - 不,你不能从静态或密封的类继承
答案 5 :(得分:1)
您可以简单地将它们区分为:
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
答案 6 :(得分:1)
密封类:
静态类: