• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Lua实现类继承

    mulInherit.lua

    复制代码 代码如下:

    --[[
    author:looyer@sina.com
    date:2014/7/18
    purpose:lua的继承演示
    --]]
    --- base class "Object"
    local Object = {_t = "Object"}
    function Object:new(id)
        local o =
        {
            _id = id
        }
        setmetatable(o, self)
        self.__index = self
        return o
    end
    function Object:type()
        return self._t
    end
    function Object:id()
        return self._id
    end
    --- class "Widget" driver from "Object"
    local Widget = {_t = "Widget"}
    setmetatable(Widget, Object)
    function Widget:new(id)
        local o =
        {
            _id = id,
        }
        setmetatable(o, self)
        self.__index = self
        -- function (tb, key)
        --  return self[key]
        -- end
        return o
    end
    -- function Widget:id()
    --  return self._id
    -- end
    --- class "Drawor" driver from "Object"
    local Drawor = {_t = "Drawor"}
    setmetatable(Drawor, Object)
    function Drawor:new(id, name)
        local o =
        {
            _id = id,
            _name = name,
        }
        setmetatable(o, self)
        self.__index = self
        return o
    end
    function Drawor:name()
        return self._name
    end
    --- class "DrawPlane" driver from "Widget" and "Drawor"
    local DrawPlane = {_t = "DrawPlane", _father = {Widget, Drawor}}
    function DrawPlane:new(id)
        local o =
        {
            _id = id,
        }
        setmetatable(o, self)
        self.__index =
        function (tb, key)
            if self[key] then return self[key] end
            for _, v in pairs(self._father) do
                if v._t == key then return v end
                if v[key] then return v[key] end
            end
        end
        return o
    end
    local varA = Object:new()
    local varB = Widget:new(10)
    local varC = Drawor:new(30, "dwr")
    local varD = DrawPlane:new(51)
    print("varA type:", varA:type())
    print("varB type:", varB:type())
    print("varB._id: ", varB._id, varB:id())
    print("varC name: ", varC:name())
    print("varD type: ", varD:type())
    print("varD id: ", varD:id())
    print("varD father Widget--", varD.Widget:type())

    以上就是本文所要分享的代码了,希望大家能够喜欢。

    您可能感兴趣的文章:
    • Lua中类的实现原理探讨(Lua中实现类的方法)
    • Lua中类的实现
    上一篇:Lua模拟面向对象示例分享
    下一篇:lua实现的2048小游戏
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Lua实现类继承 Lua,实现,类,继承,Lua,实现,