Lua多重继承代码实例

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())

以上是 Lua多重继承代码实例 的全部内容, 来源链接: utcz.com/z/315287.html

回到顶部