cocos2d-x-lua基础系列教程四(lua多继承)

lua - 多继承
1,模拟伪继承
新建extend_test.lua
新建extend_test.lua

setmetable(a,b) 
b对象是a 对象的父类
a继承于b

Account = {
 num = 10
}

function Account:new(o)
 o = o or {}
 setmetatable(o, self) --让o 作为Account 子类
 self.__index = self        --原方法的索引
 return o 
end

function Account:show(v)
 print (self.bb + v )
end 


a =Account:new {
 bb = 111
}

a:show(1.0)

新建了个mutil_extend_test.lua
local function search(k, plist)
   for i = 1,#plist do 
 local v = plist[i][k]
 if v then 
  return v
 end 
   end 
end


function createClass(…)

local c = {}
local parents = {…}

setmetatable(c,{__index = function (t,k)
 return search(k,parents)
end })

c.__index = c

function c:new(o)
 o = o or {}
       setmetatable(o, c)
 return o 
end

return c 
end


原文地址:https://www.cnblogs.com/zfyouxi/p/4216783.html