##function class(name, base)
local #|name|# = {}
function #|name|#:new(...)
self.__index = self
setmetatable(self, { __index = #|base or "self"|# })
##if base then
#|name|#.super = #|base|#
##end
local obj = {}
setmetatable(obj, self)
if type(obj.init) == "function" then
obj:init(...)
end
return obj
end
##end
##class("Person")
function Person:init(name, age)
self.name = name
self.age = age
end
function Person:greet()
print("Hello, I am " .. self.name .. ", and I am " .. self.age .. " years old.")
end
##class("Corey", "Person")
function Corey:init()
Corey.super.init(self, "Corey", 33)
end
local p = Corey:new()
p:greet()