【发布时间】:2019-09-26 11:46:37
【问题描述】:
C# 8.0 引入了一个新的语言特性——接口成员的默认实现。
public interface IRobot
{
void Talk(string message)
{
Debug.WriteLine(message);
}
}
新的默认接口实现提供了特征语言的元素。然而,这也模糊了抽象类和接口之间的界限。
现在使用抽象类而不是默认实现的接口有什么好处?
【问题讨论】:
-
你只能从一个抽象类继承,但你可以实现多个接口(只要它们没有冲突的默认实现)。抽象类也可以具有您初始化的状态(字段)。
-
他们没有什么共同点。 DIM 不指定任何类型的继承关系,而抽象类则指定。 DIM 用于实现接口版本控制和traits,这是一种提供可重用代码来实现类的方法,
-
@juharr 你可以实现多个接口,即使它们有冲突的默认实现。
标签: c# oop abstract-class c#-8.0 default-interface-member