我最近遇到了一个正在考虑在 C# 的下一版本中添加的功能列表。其中之一称为“默认接口方法”:
https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md
简而言之,它将允许您在接口本身上定义实际的方法实现,这意味着接口现在可以拥有实现。既然是这种情况,并且 C# 类可以实现/继承多个接口,那么我到底为什么要使用抽象类呢?
我唯一想到的是接口不能有构造函数,因此可能需要在抽象类构造函数中运行一些逻辑,这将证明定义抽象类是合理的。
还有其他人能想到的场景吗?
除了评论中提到的状态之外,
Base Class
您不能从基类继承接口。接口只能继承一个接口。您需要抽象类来从其他类派生。由于不能从类继承,因此不能重写类方法。您可以在抽象类中重写它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)