Lua继承 - 超级调用方法

时间:2012-01-12 13:46:21

标签: inheritance lua

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

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

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

由于

1 个答案:

答案 0 :(得分:7)

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

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

function KCCScene:onEnter()
  doThis()
  CCScene.onEnter(self)
  doThat()
end

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