I need to settle this Inheritance problem

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()
1 Like