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