C#接口-接口作为参数
接口作为参数和返回值,都是同样的作用,所有继承了这个接口的类,都可以使用。也就是说,你给这个方法传参数的时候,可以把继承了这个接口的类的实例传给这个方法,同样的道理,你可以把继承了这个接口的类返回。
接口做为参数传递,传递的是实现了接口的对象;
接口作为类型返回,返回的是实现了接口的对象。
接口的传递与返回就是围绕着上面的两句话展开的。
/// <summary>
/// 定义一个人类的接口
/// </summary>
public interface IPerson
{
void Say();
}
/// <summary>
/// 定义一个男人类 继承人类的接口
/// </summary>
public class Man : IPerson
{
public void Say()
{
Console.WriteLine("我是一个男人");
}
}
/// <summary>
/// 定义一个女人类 继承人类的接口
/// </summary>
public class Woman : IPerson
{
public void Say()
{
Console.WriteLine("我是一个女人");
}
}
/// <summary>
/// 定义一个人的类
/// </summary>
public class People
{
public void Get(IPerson ipn)//接口做为参数传递,传递的是实现了接口的对象; -----------如果接口作为类型返回,返回的是实现了接口的对象。
{
ipn.Say();
}
}
class Program
{
static void Main(string[] args)
{
People xiaoming = new People();
Man m = new Man();//这里,想实现谁接口里的方法,就实例化谁,然后在下边就传谁
Woman w = new Woman();
xiaoming.Get(m);//传递的是实现了接口的对象
xiaoming.Get(w);
Console.ReadLine();
}
}