抽象类推荐什么?
让虚方法返回null,或者有一个抽象方法吗?
让它们返回null是方便和容易的,因为我不必做任何继承自抽象类的事情。但是,如果是出于目的,错误或设计的原因,返回null有点难以理解....
对此有明确的建议吗?
答案 0 :(得分:16)
如果返回null是一个明智且理智的事情,可以作为默认行为(使用支持文档),那么virtual
也许可以。同样,如果您可以创建合理的默认值,但只想提供可扩展性:virtual
。
如果(具体)类无法运行而没有非默认实现,则将其设为abstract
。这里的案例手册是Stream
:没有理智的实现字节来自哪里?(/转到)。
答案 1 :(得分:2)
如果我要求派生类提供功能,我有一个抽象方法,如果我不那么烦恼,我有一个返回null(或做一些默认操作)的虚方法。