当我们创建一个接口对象时会发生什么?

B-A*_*asi 10 c# oop interface

我是C#接口的新手.那么有人可以解释当我们创建一个接口对象时实际发生了什么吗?

我知道为什么我们在其他语言中有接口但却无法真正掌握为什么C#允许创建接口的对象(实例)的逻辑?如果接口没有函数定义或变量,那么如何创建对象?

我一直在论坛上搜索,但无法明白这一点.这是我在接口http://www.c-sharpcorner.com/uploadfile/6897bc/interfaces-in-C-Sharp/上找到的教程, 如果你访问链接,你可以看到第一个作者创建一个类的对象和而不是接触的对象.当他写作

Interface_object = class_object;    
Run Code Online (Sandbox Code Playgroud)

接口对象从类对象中提取特征..​​.
如果接口中没有实现和变量,它是如何以及为什么会发生的?

hor*_*rgh 11

实际上,您无法创建接口的实例.

您可以创建某个类的实例,从而实现该接口.实际上可以有几十个类,实现一个接口.因此,当您使用接口类型的变量时,唯一可以保证的是,实际由变量引用的对象实现了接口,您可以使用任何接口方法,属性等.

interface IFoo
{
   void DoFoo();
}

class Foo1: IFoo
{
    public DoFoo()
    {
        //one implementation
    }
}

class Foo2: IFoo
{
    public DoFoo()
    {
        //the other implementation
    }
}

IFoo tmp = new Foo1();
tmp = new Foo2();
Run Code Online (Sandbox Code Playgroud)

您可以在SO中看到一个深入的解释:使用接口变量