// clone表table
function clone(tab)
-- 构造一个空table
local ins = {}
for key, var in pairs(tab) do
ins[key] = var
end
return ins
end
function copy(dist,tab)
for key, var in pairs(tab) do
dist[key] = var
end
end
People ={}
--function People.sayHi()
-- print("People say hi")
--end
People.sayHi = function (self)
print("People say hi:"..self.name)
end
People.new = function (name)
local self = clone(People)
self.name = name
return self
end
--local p = clone(People)
--p.sayHi()
local p = People.new("ZhangSan")
--p.sayHi(p)
p:sayHi()
-- 继承
Man = {}
Man.new = function (name)
local self = People.new(name)
-- 把man表内容copy到self中
copy(self,Man)
return self
end
Man.sayHello = function ()
print("Man say hello")
end
-- 重写
Man.sayHi = function (self)
print("Man sayHi "..self.name)
end
local m = Man.new("Lisi")
m:sayHi()
Lua语言面向对象之复制表的方式面向对象
猜你喜欢
转载自blog.csdn.net/INGNIGHT/article/details/104884172
今日推荐
周排行