我们为什么要实现接口?

jam*_*ams 4 c# oop interface

实现接口只提供方法的框架.如果我们知道该方法的确切签名行,在这种情况下
,实现接口的要求是什么?
这是实现接口的情况

interface IMy
{
    void X();
}
public class My:IMy
{
    public void X()
    {
        Console.WriteLine("Interface is implemented");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Interface尚未实现的情况

public class My
{
    public void X()
    {
        Console.WriteLine("No Interface is implemented ");
    }
}
Run Code Online (Sandbox Code Playgroud)


My obj = new My();
obj.X();
Run Code Online (Sandbox Code Playgroud)

这两种方法都会产生相同的结果.
实现接口的要求是什么?

Bin*_*ier 6

接口的目的是允许您使用两个不同的类,就好像它们是相同的类型一样.当涉及到关注点分离时,这是非常宝贵的.

例如,我可以编写一个从IDataReader读取数据的方法.我的方法不需要知道(或关心)是否是SqlDataReader,OdbcDataReader或OracleDataReader.

private void ReadData(IDataReader reader)
{
....
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我需要该方法来处理来自非标准数据文件的数据.我可以编写自己的对象来实现IDataReader,它知道如何读取该文件,我的方法再次,既不知道也不关心IDataReader是如何实现的,只是传递了一个实现IDataReader的对象.

希望这可以帮助.


SLa*_*aks 5

您可以编写多个实现接口的类,然后将它们中的任何一个放在接口类型的变量中.
这允许您在运行时交换实现.

List<ISomeInterface>拥有不同的实现也是有用的.