乡亲
我很惊讶地看到我的代码正常工作,我在抽象类中没有任何抽象方法。但是按照规则,我们应该至少有一个抽象方法,对吧?:S
不,您不需要抽象类中的抽象方法。
限制是:
不要求抽象类必须具有抽象方法。
不,这是完全有效的。事实上,static
C# 中的每个类实际上都是 .NET 中的抽象和密封类。(但是,您不能声明要使用 C# 源代码密封的抽象类。)
C# 4 规范在第 10.1.1.1 节(抽象类)中明确指出了这一点:
允许(但不是必需)抽象类包含抽象成员。
没有抽象成员的抽象类当然很少见,但并非闻所未闻。(不要忘记,不仅仅是方法可以是抽象的——你也可以有抽象的事件和属性。)
您不需要抽象方法来拥有抽象类。有时仅限制类被实例化并将其指定为某些继承层次结构的基础很有用。所有方法都可以定义在一个抽象类中。