标签:
与各个大牛比起来,我还是个刚接触游戏开发不久的新手。但是我总不能一直停留在崇拜他们的阶段,只有不断的去学习,去熟悉,才有可能有一天也被别人崇拜。好了废话不必太多,十几年的学校生涯让我知道,有时候把自己新学到的知识整理分享出来,能让记忆更加深刻。
using System; using System.Collections.Generic; interface IPlayer { // 这里写的都是通用技能 void Walk(); // 一定要记得这些方法都不用加修饰符的 比如public、protected void Run(); void Shoot(); }
using System; using System.Collections.Generic; class Infantry : IPlayer // 具体的兵种类都要使用这个接口 { //下面三个通用技能是必须要在这个类里面实现的,少一个都会编译错误的 public void Walk() { // 写具体的Walk方法的内容 Console.WriteLine("Infantry is walking"); } public void Run() { // 写具体的Run方法的内容 Console.WriteLine("Infantry is Running"); } public void Shoot() { // 写具体的Shoot方法的内容 Console.WriteLine("Infantry is Shooting"); } // 当把接口里的方法都实现了,我们就可以写每个职业的专属技能了,但是就算这个就算不写也是可以编译通过的哦。所以写不写就看你项目的具体情况了 public void UseRPG() { Console.WriteLine("Infantry is useRPGing"); } }
using System; using System.Collections.Generic; class Tankman: IPlayer // 具体的兵种类都要使用这个接口 { //下面三个通用技能是必须要在这个类里面实现的,少一个都会编译错误的 public void Walk() { // 写具体的Walk方法的内容 Console.WriteLine("Tankman is walking"); } public void Run() { // 写具体的Run方法的内容 Console.WriteLine("Tankman is Running"); } public void Shoot() { // 写具体的Shoot方法的内容 Console.WriteLine("Tankman is Shooting"); } // 当把接口里的方法都实现了,我们就可以写每个职业的专属技能了,但是就算这个就算不写也是可以编译通过的哦。所以写不写就看你项目的具体情况了 public void DriveTank() { Console.WriteLine("Tankman is driveTanking"); } }
using System; using System.Collections.Generic; class Medic: IPlayer // 具体的兵种类都要使用这个接口 { //下面三个通用技能是必须要在这个类里面实现的,少一个都会编译错误的 public void Walk() { // 写具体的Walk方法的内容 Console.WriteLine("Medic is walking"); } public void Run() { // 写具体的Run方法的内容 Console.WriteLine("Medic is Running"); } public void Shoot() { // 写具体的Shoot方法的内容 Console.WriteLine("Medic is Shooting"); } // 当把接口里的方法都实现了,我们就可以写每个职业的专属技能了,但是就算这个就算不写也是可以编译通过的哦。所以写不写就看你项目的具体情况了 public void Treat() { Console.WriteLine("Medic is treating"); } }
using System; using System.Collections.Generic; class War { static void Main(string[] args) { // 这里相当是三个玩家分别建立了三个不同兵种的角色 Infantry player0 = new Infantry(); Tankman player1 = new Tankman(); Medic player2 = new Medic(); // 然后他们都先跑了一段路 player0.Run(); player1.Run(); player2.Run(); // 玩家0使用RPG导弹;玩家1驾驶坦克;玩家2使用医疗技能 player0.UseRPG(); player1.DriveTank(); player2.Treat(); Console.ReadKey(); } }
以上就是接口的简单应用了,我们来总结下:
接口的用法:
1.接口里写的都是通用的东西,比如,我准备写“猪”,“狗”,“猫”等等,那我就写个“动物”接口,这些动物都能“跑”,“跳”,“叫”,那么“动物”接口就声明“跑”,“跳”,“叫”这三个方法;2.具体类里必须实现接口中的所有方法,就是说“猪”,“狗”,“猫”类中必须都有“跑”,“跳”,“叫”方法;3.具体类里可以有接口中没有的方法,比如“猪”有个“拱白菜”的方法,“狗”和“猫”没有这个方法。
接口的作用:
1.统一管理:不管是几个人写具体类,只要他们都实现同一个接口,那他们都会知道类中那些方法是必须有的;
2.求同存异:相同的是有共同的方法,不同的是,方法实现的内容可以不同。还可以有特有的方法;
3.方便日后添加新类:比如,以后还要再加个工兵,不需要去回忆兵种都有什么通用方法,实现接口就可以了。
OK,以上就是我对接口的一些理解。可能会有一些偏差,也希望各位可以帮我指出来。之后有时间,我还好做一些另外的学习笔记。
标签:
原文地址:http://www.cnblogs.com/SogaZhaZha/p/4645770.html