The code is very simple, here is not much nonsense, we mainly look at ideas
Copy Code code as follows:
function Class (Super)
Local MT = {__call = function (_c, ...)
Local function Create (_c, _o, ...)
If _c.__super then create (_c.__super, _o, ...) end
If _c.__ctor then _c.__ctor (_o, ...) end
Return _o
End
Local _o = Create (_c, {}, ...)
Return setmetatable (_o, _c)
End
Mt.__index = Super or MT
Return setmetatable ({__super = super}, MT)
End
----------------------------------------------------------------------
A = Class ()
function A:__ctor (s)
SELF.I = 123
SELF.J = 333
Print (' A ctor ', s)
End
Local A = A (' a ')
Print (A.I, A.J)
--B inheritance A
B = Class (A)
function B:__ctor (s)
SELF.I = 444
Print (' B ctor ', s)
End
Local B = B (' B ')
Print (B.I, B.J)
Sample screenshot
The above is the entire content of this article, I hope you can enjoy.