所以我有一个类 A。它定义了很多行为(方法),但也留给了很多子类来实现。这个类永远不会有一个实例。这只是定义所有子类共有的行为。 将扩展 A 的子类(A1、A2、A3 等)都将是单例。我不希望这些子类有多个实例。
因此,显而易见的方法是创建一个抽象类 A,然后创建扩展 A 的静态类 A1、A2、A3。
但显然,这在 C# 中是不允许的。我假设这是有充分理由的。 Microsoft 的人可能比我更了解面向对象的软件设计。 但我只需要一些帮助来弄清楚为什么这个设计“很差”,以及什么是更好的替代设计。
我正在使用 WCF 编写 RESTful API。有一堆数据库表,此服务将对其执行 CRUD 操作。有很多代码对所有表都是通用的,还有很多代码是特定于每个表的。此外,在任何给定时间只能对表执行一项操作。
所以我想我可以有一个抽象类TableHandler
。然后是它的多个扩展,例如 TableAHandler
、TableBHandler
等。因为我只想要这些子类的一个实例,所以我想让它们成为静态的。
最佳答案
继承是影响对象的东西。根据定义,静态类不允许实例化。因此,它们不能参与继承。
更实际的是,静态方法不能是虚拟的,这几乎消除了能够声明继承的静态类的任何可能的用处。
关于c# - 静态类继承抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28375204/