接口: 关键字interface, 在有些语言里面叫做“协议”。我个人觉得“协议”名称更加能够表现出它的特性。
需要注意的是,接口定义中,无需对方法进行实现,方法前也不能添加访问修饰符。
那么接口用什么用呢?主要是作为其它类的父类,规定和声明一些必须实现的方法。
①遵循特性
举一个场景,假如你的主程让你实现一个类中的50个方法,你拿到清单后,有没有可能漏掉几个呢?
如果不使用接口,你只能使用肉眼,在类中一个一个的检查,看看丢掉了哪个。
但是如果主程将这些方法写到接口中,就像上述的IHeroAction接口,一旦有人继承了这个接口,就必须全部实现其中的方法。
如果丢掉一个,则会从编译器层面报错,让你的程序无法运行,强迫你实现所有方法。
没有实现void UnderAttack(float damage)方法。
②多态需求
当父类引用指向子类对象时,调用父类中的方法名,执行的却是子类方法,这种现象叫做多态。
多态作为面向对象语言中最重要的特征,实现方法有三种:
1)父类方法使用virtual修饰
2)父类中的方法使用抽象修饰abstract
3)父类是一个接口。
所以接口也可以实现多态。
以下是一个多态的案例,模拟了一个枪的父类GunBase,规定了开枪的方法,子类继承后,由子类决定枪声。
调用形式:
以上是接口的常用场景。望采纳。