Lua继承 - 超级调用方法

Kry*_*ian 4 inheritance lua

我正在使用cocos2d-x [lua binding]来移植我的cocos2d [objective-c]游戏并且我有几个类子类.例如,我有一个CCScene的子类[永远不要做它的作用],它有一个onEnter方法.在我的子类中,KCCScene我也有onEnter,在那里我调用了[super onEnter].

所以我已经阅读了很多描述Lua继承的文档,但我从未见过对super方法的调用.

有可能吗?如果是,我应该怎么做像super:onEnter()?

谢谢

kik*_*ito 8

这实际上取决于你做OO的具体方式.有些lib提供了"开箱即用"的超级方式,有些则没有.我不熟悉Cocos2d-x,但我认为它没有.

实现这一目标的一种方法是直接使用超类,如下所示:

function KCCScene:onEnter()
  doThis()
  CCScene.onEnter(self)
  doThat()
end
Run Code Online (Sandbox Code Playgroud)

这应该适用于所有执行OO的lib,包括Cocos2d-x.但是,您丢失了漂亮的":"语法,并且需要包含一个显式的"self"参数.

  • 啊哈 - 我现在明白了.请忽略以前. (3认同)