我最近遇到了在下一版C#中考虑添加的功能列表。其中一个被称为"默认接口方法":
https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md
简而言之,它允许您在接口本身上定义实际的方法实现,这意味着接口现在可以实现。既然如此,C#类可以实现/继承多个接口那么为什么我会在世界上使用抽象类?
我唯一想到的是接口不能有构造函数,所以可能需要在抽象类构造函数中运行一些逻辑,这样才能证明定义一个抽象类。
还有其他人可以想到的场景吗?
答案 0 :(得分:1)
通常,类继承感觉像分类法(x'是' y),而接口是行为(x'可以做' y),所以暗示有一个微妙的差异含义。虽然你是对的,但技术上的区别并不那么明确。
答案 1 :(得分:1)
除了评论中提到的州外,
<强> Base Class
强>
您无法从Base类继承接口。接口只能继承接口。您需要抽象类来从其他类派生。既然你不能从类中继承,那么你就无法覆盖类方法。您可以在抽象类中覆盖它。