local function search(k, plist)
for i, v in pairs(plist) do
local temp_v = v[k]
if temp_v then
return temp_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
Named = {}
function Named:getname()
return self.name
end
function Named:setname(n)
self.name = n
end
local NamedAccount = createClass(Account, Named)
account = NamedAccount:new({name = "Paul"})
print(account:getname())