请问C# 接口如何调用?

我发现一个问题
定义了一个接口:
interface aa
{
void add();
}
定义一个类继承接口
class bb:aa
{
public void add()
{
messeagebox.show("接口");
}
}
我发现程序里有人这样就可以调用
aa at=new aa();
at.add();
求原理
没错的,我确实看到他是这么用的,不过他开头有个初始化
aa at= IoC.Resolve<aa>();
也许在这里做了什么东西

沧海一幻觉
浏览 1188回答 1
1回答

互换的青春

我们定义一个接口public interface IBark{void Bark();}再定义一个类,继承于IBark,并且必需实现其中的Bark()方法public class Dog:IBark{public Dog(){}public void Bark(){Consol.write("汪汪");}}然后,声明Dog的一个实例,并调用Bark()方法Dog 旺财=new Dog();旺财.Bark();从接口的定义方面来说,接口其实就是类和类之间的一种协定,一种约束.还拿上面的例子来说.所有继承了IBark接口的类中必需实现Bark()方法.那么从用户(使用类的用户)的角度来说,如果他知道了某个类是继承于IBark接口,那么他就可以放心大胆的调用Bark()方法,而不用管Bark()方法具体是如何实现的.比如,我们另外写了一个类.public class Cat:IBark{public Cat(){}public void Bark(){Consol.write("喵喵");}}一个接口using System;using System.Collections.Generic;using System.Text;namespace com.zh.jieKou{interface jieKou{void add();void delte();}}下面是较常用的使用方法using System;namespace ClassLibrary2{interface IEmploy //接口{void Speak(); //方法}class Hello:IEmploy //Hello类实现接口{public void Speak() //实现方法{Console.WriteLine("Hello:朋友");}}class Sorry:IEmploy //Sorry类实现接口{public void Speak() //实现方法{Console.WriteLine("Sorry:朋友");}}}实现//直接调用IEmploy Ie = new Hello();Ie.Speak(); //调用Hello类实现的接口IEmploy Ie = new Sorry();Ie.Speak();//反射调用 记住反射的空间引用 using System.Reflection;Assembly Asm = Assembly.Load("ClassLibrary2");//反射出空间Type type = Asm.GetType("ClassLibrary2.Hello");//反射出空间下的类object AssClas = Activator.CreateInstance(type);//动态实力化反射回来的指定空间下的指定类IEmploy Ie = (IEmploy)AssClas; ////转换为接口类型//常用的就这几种方法
打开App,查看更多内容
随时随地看视频慕课网APP