接口interface::比想象的更重要
2013-03-04 11:52
176 查看
在进行游戏编程的时候,有许多类中的函数名都会撞车,我会在不同枪支下声明一个开火函数,我会在敌人函数中声明一个MeleeAttack函数,但是不同类中的函数实现过程却是不同的。
例如普通僵尸会挥舞爪子,而更牛逼一点的士兵会使用武器攻击。
既然使用接口来实现这些,接口当然要给这些内容提供一个统一的标准。电源插座,USB。
接口为接下来的类提供了统一的函数标准,例如所有枪支的开火函数,实现接口PrimaryFire。接口会强制这些实现接口类实现必要的函数,否则编译器就会报错,这对于错误检查真是把双刃剑。
2.接口实例
接口将需要统一实现的内容,束在一起,就像集线器一样,当然他不能实例化内存
实现接口
如果我在Goblin中没有实现TakeDamage(int Damage)函数,将会出现华丽的报错。
例如普通僵尸会挥舞爪子,而更牛逼一点的士兵会使用武器攻击。
class Zombie extends Pawn; function MeleeAttack() { 近战攻击 } class Soilder extends Pawn; function MeleeAttack() { 拿武器攻击,不同武器攻击方式不同 }
既然使用接口来实现这些,接口当然要给这些内容提供一个统一的标准。电源插座,USB。
接口为接下来的类提供了统一的函数标准,例如所有枪支的开火函数,实现接口PrimaryFire。接口会强制这些实现接口类实现必要的函数,否则编译器就会报错,这对于错误检查真是把双刃剑。
2.接口实例
接口将需要统一实现的内容,束在一起,就像集线器一样,当然他不能实例化内存
Iterface Enemy; const Damge=20; //伤害值 const AnimRate=0.2; //攻击频率 function MeleeAttack(float AnimRate); function TakeDamage(int Damage);
实现接口
class Goblin extends Pawn implements(Enemy); function MeleeAttack(float Rate) { if(Rate>class'Enemy'.const.AnimRate) { DoAnim(Rate); } }
如果我在Goblin中没有实现TakeDamage(int Damage)函数,将会出现华丽的报错。
相关文章推荐
- 黑马程序员面试题面向对象二(多态,抽象类abstract,接口Interface,内部类,异常Exception,包package,String类,StringBuffer)
- 接口(interface)
- Java 学习笔记 (3) -抽象类 abstract 接口 interface 内部类 inner class 继承 extends 实现 implements 包 package
- Interface Segregation Principle (ISP) - OO设计的接口分隔原则
- Java 接口(Interface)
- 四、资源和对象的区别、抽象类和抽象方法、重载技术、接口interface
- C#基础-->抽象类(abstract)和接口(Interface)
- 接口(interface)原来是可以被继承(extends)的
- java中的abstract类和interface接口的区别
- Java基础-类-接口interface-package-import.
- Android 无线接口层RIL(Radio Layer Interface)
- Java方法 入参为接口Interface
- 学习笔记4:java 1.8 函数式接口 @FunctionalInterface 注解
- 接口interface
- JAVA_接口演示_InterfaceDeamo.java____接口(interface)、默认(default)
- C#中 什么是接口Interface,以及如何简单使用
- C# 浅谈 接口(Interface)的作用
- J2SE 接口 [interface]
- Oracle EBS Interface/API(6)--WIP接口表:WIP.WIP_JOB_DTLS_INTERFACE数据字典
- C#.NET常见问题(FAQ)-interface接口如何理解