如何定义一个必须继承的类?在 C# 中
6 回答
您将类标记为abstract
(这是 VB.NET 的 C# 类似物Must Inherit
)。
这将确保它不能被直接实例化。
从链接的 MSDN 文章:
abstract 修饰符表示被修改的事物有一个缺失或不完整的实现。abstract 修饰符可以与类、方法、属性、索引器和事件一起使用。在类声明中使用 abstract 修饰符来指示一个类仅作为其他类的基类。标记为抽象或包含在抽象类中的成员必须由派生自抽象类的类实现。
(强调我的)
使用abstract
修饰符。
public abstract class MyClass()
{
...
}
您可以将一个类定义为abstract
,或者给它一个仅受保护的构造函数。abstract
更好。
如果你想创建一个必须被继承的类,你需要用abstract
修饰符标记它。
public abstract MyClass
{
}
如果这是一个问题,那么不可能在代码中强制执行派生或实现的必要性。
但:
您可以定义一个interface
强制消费者实现它。
或者您可以abstract class
只定义抽象成员以强制消费者覆盖所有这些成员。
希望这可以帮助。
最好有界面。
如果您需要模拟功能,并且不要求它在编译时失败......
在基类中定义一个方法。抛出异常作为实现中的唯一行。您可能想让消息非常清楚地说明问题所在。
覆盖超类中的方法并实现它们。如果您未能在超类中实现,您将得到异常。
不完美,但假设您正在尝试从 vb.net 移植代码......这可能会奏效。