lua中table的单继承与多继承

554 词

Table单继承(元表)

account = {}
function account:new( o )
    o = o or {}
    setmetatable(o,self)
    self.__index = self
    return o
    -- body
end

function account:show( v )
print(self.bb…v)
– body
end
a = account:new({bb = 'aa'})
a:show('bb') – aabb

Table多继承(不常用)

local function search(k,plist )
– body
for i=1,#plist do
local v = plist[i][k]
if v then
return v
end
end
end

function createClass( … )
– body
local c = {}
local parent = {…}
setmetatable(c,{__index = function ( t,k )
– body
return search(k,parent)
end})

c.__index = c
function c:new(o )
    -- body
    o = o or {}
    setmetatable(o,c)
    return o
end

end