Unity中接口的应用

2020-04-27 09:39发布

接口: 关键字interface, 在有些语言里面叫做“协议”。我个人觉得“协议”名称更加能够表现出它的特性。

 需要注意的是,接口定义中,无需对方法进行实现,方法前也不能添加访问修饰符。
 那么接口用什么用呢?主要是作为其它类的父类,规定和声明一些必须实现的方法。
 ①遵循特性
   举一个场景,假如你的主程让你实现一个类中的50个方法,你拿到清单后,有没有可能漏掉几个呢?
 如果不使用接口,你只能使用肉眼,在类中一个一个的检查,看看丢掉了哪个。
 但是如果主程将这些方法写到接口中,就像上述的IHeroAction接口,一旦有人继承了这个接口,就必须全部实现其中的方法。
 

如果丢掉一个,则会从编译器层面报错,让你的程序无法运行,强迫你实现所有方法。

没有实现void UnderAttack(float damage)方法。

②多态需求

当父类引用指向子类对象时,调用父类中的方法名,执行的却是子类方法,这种现象叫做多态。

多态作为面向对象语言中最重要的特征,实现方法有三种:

1)父类方法使用virtual修饰

2)父类中的方法使用抽象修饰abstract

3)父类是一个接口。

所以接口也可以实现多态。

以下是一个多态的案例,模拟了一个枪的父类GunBase,规定了开枪的方法,子类继承后,由子类决定枪声。

调用形式:


以上是接口的常用场景。望采纳。