用最简单的方法编写一个只能继承纯lua类的,lua类
function Class(classname,super)
local class_info = {}
setmetatable(class_info,{__index = function(owner,key)
::recheck::
if key:find("__") or owner.__super == nil then return nil end
local res = owner.__super[key]
if res then return
res
else
owner = owner.__super
goto recheck
end
end})
class_info.classname = classname
class_info.__index = class_info
class_info.__super = super
class_info.new = function(...)
local o = {}
setmetatable(o,class_info)
o.__index = o
-- 在这里初始化类的实例对象
-- o:ctor(...)
-------------------------
return o
end
return class_info
end
如何使用:
1.不继承任何类型
ClassA = Class("ClassA")
function ClassA:test()
print(C