gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:33:41 24 4
gpt4 key购买 nike

所以我有一个类 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com