主页 > 知识库 > Lua实现类继承

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,实现,类,继承,Lua,实现,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Lua实现类继承》相关的同类信息!
  • 本页收集关于Lua实现类继承的相关信息资讯供网民参考!
  • 推荐文章