为什么接口变成抽象 类 c#
Why are interfaces turning into abstract classes c#
老实说,我在这里寻找很好的例子来说明使用接口而不是抽象的原因。我能看到的主要原因是它们是供 classes 遵循的不拘一格的 public 蓝图。但是随着他们添加默认实现,情况就不再如此了。越来越难以区分接口和抽象 classes。在 c# 11 中使用抽象 class 接口的真正意义是什么。它只是一个较慢的抽象 class.
连我都觉得抽象类和接口太相似了。我更喜欢使用抽象 类,因为可以定义它的方法,直到并且除非使用了多重继承的概念。
与抽象 类 的情况一样,我们不能继承多个抽象 类,而对于接口,您可以继承任意数量的接口。
我会通过一段代码让你明白这一点。
interface IFirstInterface
{
void myMethod();
}
interface ISecondInterface
{
void myOtherMethod();
}
class Democlass : IFirstInterface, ISecondInterface
{
public void myMethod()
{
System.Console.WriteLine("Some text..");
}
public void myOtherMethod()
{
System.Console.WriteLine("Some other text..");
}
}
class Program
{
static void Main(string[] args)
{
Democlass myObj = new Democlass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
如果您觉得不清楚,请告诉我。
老实说,我在这里寻找很好的例子来说明使用接口而不是抽象的原因。我能看到的主要原因是它们是供 classes 遵循的不拘一格的 public 蓝图。但是随着他们添加默认实现,情况就不再如此了。越来越难以区分接口和抽象 classes。在 c# 11 中使用抽象 class 接口的真正意义是什么。它只是一个较慢的抽象 class.
连我都觉得抽象类和接口太相似了。我更喜欢使用抽象 类,因为可以定义它的方法,直到并且除非使用了多重继承的概念。
与抽象 类 的情况一样,我们不能继承多个抽象 类,而对于接口,您可以继承任意数量的接口。
我会通过一段代码让你明白这一点。
interface IFirstInterface
{
void myMethod();
}
interface ISecondInterface
{
void myOtherMethod();
}
class Democlass : IFirstInterface, ISecondInterface
{
public void myMethod()
{
System.Console.WriteLine("Some text..");
}
public void myOtherMethod()
{
System.Console.WriteLine("Some other text..");
}
}
class Program
{
static void Main(string[] args)
{
Democlass myObj = new Democlass();
myObj.myMethod();
myObj.myOtherMethod();
}
}
如果您觉得不清楚,请告诉我。