C# 8.0引入了一种新的语言特性--接口成员的默认实现。
public interface IRobot
{
void Talk(string message)
{
Debug.WriteLine(message);
}
}新的默认接口实现提供了特性语言的元素。然而,is也模糊了抽象类和接口之间的界限。
现在使用抽象类而不是使用默认实现的接口有什么好处呢?
发布于 2019-09-26 11:54:00
很有趣,但是CLR将默认接口实现为抽象类。CLR支持多重继承。关于这一点,这里是一篇很好的文章。
在C#中,当需要实现(在本例中实际上是从多个接口继承)时,需要默认接口,因为语言不允许您从多个类继承。
抽象类还允许您拥有状态。状态,即字段,在接口中是不允许的。
https://stackoverflow.com/questions/58116148
复制相似问题