Lua 多继承编写

local A =class(“A”)

function A:test1()
CCLuaLog(“A() : test1”)
end

return A


local B =class(“B”)

function B:test2()
CCLuaLog(“B() : test1”)
end

return B


1.现在有一个 C 想继承A和B
那么,在quick里如何来实现呢?

2.另外,我想在lua里模拟接口,有木有办法可以实现?

感谢。

1,多继承理论上是可以实现的,要自己实现了,就是metatable,metadata这些东西,但是多继承userdata的话不确定行
2,lua模拟接口好像没啥意义,声明变量的时候根本就不用指定类型,代码提示也不强,反正都是要盲敲或者c+c>c+v的了,更多是对人约束一下,对代码很难约束了

lua这个太自由了

多继承一般是自找麻烦。重新考虑一下自己的实现模型,尽量用组合来实现吧。
模拟接口…还是没摆脱面向对象的思路来使用lua。不过你确实要用的话,参考Quick的framework中,EventProtocol和Component的实现吧。

用 quick 提供的 component 机制吧。

接口+行为组合

参考

framework/cc/components/behavior