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里模拟接口,有木有办法可以实现?
感谢。
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