静态类继承自抽象类?

Ayu*_*ISM 2 c# oop inheritance abstract-class static-classes

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

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

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


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

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

rec*_*ive 5

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

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