首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它是面向对象编程体系中的思想精髓之一。
接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。体现了自然界“如果你是……则必须能……”的理念。
例如,在自然界中,人都能吃饭,即“如果你是人,则必须能吃饭”。那么模拟到计算机程序中,就应该有一个IPerson(习惯上,接口名由“I”开头)接口,并有一个方法叫Eat(),然后我们规定,每一个表示“人”的类,必须实现IPerson接口,这就模拟了自然界“如果你是人,则必须能吃饭”这条规则。
一、Grabbable接口:可被抓取的接口。接口一般用形容词来命名。隐含的意思是Grabbable是物体的某一方面的属性,描绘的是物体某一个特征。
二、哪些类可以实现Grabbable接口?
1、所有能抓取的东西
2、比如:椅子、武器(拿起来要有方向规定,比如剑锋利的一面朝外,盾牌的盾面也要朝外,武器都有手握的把手,不是随便握的)、门(打开和关闭都是围绕一个轴转动)、抽屉(只能往前后方向移动,并且只能移动一定的距离,不能无限移动)、石头。实现接口的函数名称一样,但是函数实现根据不同的物品可以不一样。
三、在蓝图中新建接口
1、在内容视图,右键选择“Blueprints——》Blueprint Interface”。
四、在蓝图中实现接口,一个类可以实现多个多个接口,接口与接口之间互不影响。
五、实现接口的函数体,要在Add Event节点下,如图所示。
把原有的OnGrab改成On Grab Private,OnDrop改成On Drop Private,然后直接调用就可以了。使用一个自定义的函数体来实现接口函数体,可以有很多好处:可以使用局部变量、优化代码结构。