我最近遇到了一个正在考虑在下一版 C# 中添加的功能列表。其中之一称为“默认接口方法”:
https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md
简而言之,它将允许您在接口本身上定义实际的方法实现,这意味着接口现在可以具有实现。既然是这种情况,并且 C# 类可以从多个接口实现/继承,那么我到底为什么要使用抽象类呢?
我唯一想到的是接口不能有构造函数,所以可能需要在抽象类构造函数中运行一些逻辑,这将证明定义抽象类是合理的。
还有其他任何人都可以想到的场景吗?