欢迎来到代码驿站!

当前位置:首页 >

Lua模拟面向对象示例分享

时间:2021-09-30 08:57:53|栏目:|点击:

代码很简单,这里就不多废话了,大家主要看看思路

复制代码 代码如下:

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继承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)

示例截图

以上就是本文的全部内容了,希望大家能够喜欢。

上一篇:docker日常使用的实用小技巧总结(推荐)

栏    目:

下一篇:docker 容器上编译 go 程序提示找不到文件问题

本文标题:Lua模拟面向对象示例分享

本文地址:http://www.codeinn.net/misctech/178215.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有