C#接口的实现是如何的呢?尽管接口只负责定义,不负责实现,具体的实现是交给他的子类去完成的。 OK,现在我们实例的演示中来看看具体的C#接口的实现。
就拿我的趣味编程中的玩剪刀石头布的案例来说吧,爷爷和奶奶从小就教授小孙子各中东西,其中玩趣味游戏就他们常有的事,可小孙子还小不知道变换,每次都出剪刀,这样能赢他爷爷吗?有了这个分析,我们可以怎么做呢?上面定义了接口,我们是不是直接去实现这个接口便OK了。爷爷和小孙子玩游戏,那么就定义两个类去继承IPlayer接口。代码如下:
- /**////
- /// 出手动作状态
- ///
- public class Options
- {
- public static readonly string JIANDAO = "剪刀";
- public static readonly string SHITOU = "石头";
- public static readonly string BU = "布";
- }
游戏里只会出现这三种动作状态,所以我们可以进行封装,这里是通过类封装的,当然我们也可以通过别的相关技术来封装,比如在本系列第二篇文章《C#编程利器之二:结构与枚举(Structure and enumeration)》 里介绍的结构与枚举,本例中所出现的这三中不变的状态完全可以使用结构或枚举来封装,详细请阅读上篇文章。下面是定义爷爷(Grandpa)类和孙子(Grandson)类去实现接口(IPlayer)了。代码如下:
- /**////
- /// 爷爷--玩家之一
- ///
- public class Grandpa:IPlayer
- {
- public string GetName()
- {
- return "爷爷";
- }
- public string Show()
- {
- Random random = new Random();
- int i = (int)(random.Next() * 1000) % 3;
- switch (i)
- {
- case 0: return Options.JIANDAO;
- case 1: return Options.SHITOU;
- default: return Options.BU;
- }
- }
- }
- /**////
- /// 孙子--玩家之一
- ///
- public class Grandson:IPlayer
- {
- public string GetName()
- {
- return "孙子";
- }
- public string Show()
- {
- return Options.JIANDAO;
- }
- }
如上,我们的GrandPa和GrandSon就实现了接口IPlayer,如下图示:
C#接口的实现实例的介绍就向你讲述到这里,希望对你了解和学习C#接口的实现有所帮助。
【编辑推荐】