濮阳杆衣贸易有限公司

主頁 > 知識庫 > Lua實(shí)現(xiàn)類繼承

Lua實(shí)現(xiàn)類繼承

熱門標(biāo)簽:冀州市地圖標(biāo)注 清朝地圖標(biāo)注哈爾濱 百度地圖標(biāo)注早餐區(qū)域 漳州智云呼電話機(jī)器人 怎么去除地圖標(biāo)注 新岸線智能電銷機(jī)器人 個(gè)人怎么在地圖標(biāo)注需要的店鋪 地圖標(biāo)注大廈 武漢外呼防封系統(tǒng)多少錢

mulInherit.lua

復(fù)制代碼 代碼如下:

--[[
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中類的實(shí)現(xiàn)原理探討(Lua中實(shí)現(xiàn)類的方法)
  • Lua中類的實(shí)現(xiàn)

標(biāo)簽:宣城 天門 天門 濰坊 臺灣 儋州 金昌 德宏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua實(shí)現(xiàn)類繼承》,本文關(guān)鍵詞  Lua,實(shí)現(xiàn),類,繼承,Lua,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua實(shí)現(xiàn)類繼承》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua實(shí)現(xiàn)類繼承的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    万盛区| 晋中市| 河源市| 阆中市| 五台县| 江山市| 建平县| 武安市| 杭锦旗| 屯留县| 昌江| 阿图什市| 延庆县| 太湖县| 兴山县| 遂宁市| 石柱| 武平县| 海兴县| 璧山县| 阳信县| 楚雄市| 南阳市| 孝昌县| 革吉县| 绥江县| 手游| 克拉玛依市| 合作市| 安泽县| 广平县| 治多县| 吉水县| 佛山市| 井研县| 昆明市| 柳林县| 宝应县| 凤山县| 孟津县| 庆元县|