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)
t[k] = search(k,parents)
return t[k]
end})
--将 c 设置成其实力的元表
c.__index = c
function c:new(o)
o = o or {}
setmetatable(o,c)
return o
end
return c
end
local Account = {}
function Account:setRecord(tb)
self.record = tb
end
function Account:getRecordByIndex(index)
return self.record and self.record[index] or nil
end
Named = {}
function Named:getname()
return self.name
end
function Named:setname(name)
self.name = name
return self.name
end
local NamedAccount = createClass(Account,Named)
local na = NamedAccount:new{name = "默认账号1"}
print(na:getname())
print(na:setname("111"))
print(na:setname("11122"))
na:setRecord({"第一次","二次"})
print(na:getRecordByIndex(2))