-- Chapter 27 example: Animal -> Dog inheritance. local Animal = {} Animal.__index = Animal function Animal.new(name) local self = setmetatable({}, Animal) self.name = name return self end function Animal:describe() print("I am " .. self.name .. ".") end local Dog = setmetatable({}, { __index = Animal }) Dog.__index = Dog function Dog.new(name) local self = Animal.new(name) return setmetatable(self, Dog) end function Dog:bark() print(self.name .. ": Woof!") end local rex = Dog.new("Rex") rex:describe() -- I am Rex. rex:bark() -- Rex: Woof!