Lua多重继承代码实例
- 作者: 伊布拉希莫尼古拉斯凯奇
- 来源: 51数据库
- 2021-07-07
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())
推荐阅读
