接口
接口可以是命名控件或类的成员,并且可以包含下列成员的签名:方法、属性、索引器、事件。
它便于我们统一项目的规定,便于团队代码的管理!
X程序员实现狗这个类,他写一个叫喊方法void Han(){……}
Y程序员实现猫这个类,他写一个叫喊方法void Shout(){……}
M程序员实现猪这个类,他写一个叫喊方法 void Shout(string content){……}
Y程序员和M程序员写的叫喊方法名称是一样,但M程序员中还要传递动物叫喊的内容
老王现在要让所有动物都叫一遍就得一个动物一个动物的去调用方法……
老王定义一个动物接口,所有的动物类都得继承这个接口,这个接口只定义一个void Shout();
X,Y,M程序员继承后,X,M立马就发现有问题,然后开始改了自己手中的类
namespace InterfaceProject
{
/// <summary>
/// 动物接口
/// </summary>
interface IAnimal
{
/// <summary>
/// 动物叫喊
/// </summary>
void Shout();
}
}
狗,直接继承接口
public class Dog:IAnimal
{
public void Shout()
{
Console.WriteLine("汪汪汪");
}
}
猫,直接继承接口
public class Cat:IAnimal
{
public void Shout()
{
Console.WriteLine("喵喵喵");
}
}
猪,直接继承接口
public class Pig:IAnimal
{
public void Shout()
{
Console.WriteLine("猪怎么叫来着??猪叫");
}
}
百兽齐鸣
static void Main(string[] args)
{
//百兽齐鸣(这里可以使用反射来初始化所有继承IAnimal的所有动物,,主要看接口)
List<IAnimal> animals = new List<IAnimal>();
IAnimal dog = new Dog();
animals.Add(dog);
IAnimal cat = new Cat();
animals.Add(cat);
IAnimal pig = new Pig();
animals.Add(pig);
//所有动物都叫一遍
for (int i = 0; i < animals.Count; i++)
{
animals[i].Shout();
}
}
以上代码来源于网络资料