c# - 静态类继承抽象类?

标签 c# oop inheritance abstract-class static-classes

所以我有一个类 A。它定义了很多行为(方法),但也留给了很多子类来实现。这个类永远不会有一个实例。这只是定义所有子类共有的行为。 将扩展 A 的子类(A1、A2、A3 等)都将是单例。我不希望这些子类有多个实例。

因此,显而易见的方法是创建一个抽象类 A,然后创建扩展 A 的静态类 A1、A2、A3。

但显然,这在 C# 中是不允许的。我假设这是有充分理由的。 Microsoft 的人可能比我更了解面向对象的软件设计。 但我只需要一些帮助来弄清楚为什么这个设计“很差”,以及什么是更好的替代设计。


我正在使用 WCF 编写 RESTful API。有一堆数据库表,此服务将对其执行 CRUD 操作。有很多代码对所有表都是通用的,还有很多代码是特定于每个表的。此外,在任何给定时间只能对表执行一项操作。

所以我想我可以有一个抽象类TableHandler。然后是它的多个扩展,例如 TableAHandlerTableBHandler 等。因为我只想要这些子类的一个实例,所以我想让它们成为静态的。

最佳答案

继承是影响对象的东西。根据定义,静态类不允许实例化。因此,它们不能参与继承。

更实际的是,静态方法不能是虚拟的,这几乎消除了能够声明继承的静态类的任何可能的用处。

关于c# - 静态类继承抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28375204/

相关文章:

c# - XML 模式 - 哪个更正确?

c# - 如何在 C# 中以人性化的方式舍入 double ?

c# - WPF 中的编号列表

java - child 没有继承其 parent 的一些属性/行为?

java - 使用另一个类的 getter 方法中的值

c# - 用颜色代码写入csv文件

c++ - const 类对象与 const 数据成员有何不同?

iphone - 私有(private)合成属性(property)是矛盾的吗?

c# - 限制访问类库中的方法和属性

android - 扩展 Android View 类以添加阴影