Yes, make sure the function name is different. However I prefer using ECS to avoid inheritance entirely.
local class1 = {}
class1.__index = class1
function class1.new()
local self = setmetatable({}, class1)
return self
end
function class1:Destroy()
end
function class1:Class1Special()
print("Class 1 special")
end
local class2 = {}
class2.__index = class2
setmetatable(class2, class1)
function class2.new()
local class1Object = class1.new()
local self = setmetatable(class1Object, class2)
return self
end
local class3 = {}
class3.__index = class3
setmetatable(class3, class2)
function class3.new()
local class2Object = class2.new()
local self = setmetatable(class2Object, class3)
return self
end
local newClass3 = class3.new()
newClass3:Class1Special()