local Person = {}
function Person:new(...)
self.__index = self
setmetatable(self, { __index = self })
local obj = {}
setmetatable(obj, self)
if type(obj.init) == "function" then
obj:init(...)
end
return obj
end
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
local Corey = {}
function Corey:new(...)
self.__index = self
setmetatable(self, { __index = Person })
Corey.super = Person
local obj = {}
setmetatable(obj, self)
if type(obj.init) == "function" then
obj:init(...)
end
return obj
end
function Corey:init()
Corey.super.init(self, "Corey", 33)
end
local p = Corey:new()
p:greet()