lua面向对象的一种写法:
local function _init(class,...)
-- body
local o = setmetatable({},{__index = class})
if o.__init__ then
o:__init__(...)
end
return o
end
function class(base)
-- body
return setmetatable({},{
__call = _init,
__index = base
})
end
People = class()
function People.__init__(self,name,age)
self.name = name or ""
self.age = age or 0
end
function People.getInfo(self)
-- body
print("name = "..self.name.." age = "..self.age)
end
Man = class(People)
function Man.getInfo(self)
-- body
print("man print name = "..self.name.." age = "..self.age)
end
m = Man("xiaoming",25)
m:getInfo()