local Vehicle = {} Vehicle.__index = Vehicle function Vehicle.new(name) return setmetatable({ name = name }, Vehicle) end function Vehicle:describe() print(self.name .. " is a vehicle.") end local Car = setmetatable({}, { __index = Vehicle }) Car.__index = Car function Car.new(name) return setmetatable(Vehicle.new(name), Car) end function Car:describe() Vehicle.describe(self) print(" It has four wheels.") end Car.new("Beetle"):describe()