• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua实现类继承

Lua实现类继承

作者:hebedich 字体:[增加 减小] 来源:互联网

hebedich 通过本文主要向大家介绍了lua类的实现,lua里实现类,lua 类继承,lua 类,lua 类如何设计成单例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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())
</div>

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

</div>

您可能想查找下面的文章:

  • lua实现的2048小游戏
  • Lua实现类继承
  • Lua中类的实现原理探讨(Lua中实现类的方法)

相关文章

  • Lua操作字符串的5个代码片段分享
  • Lua获取网络时间(获取时间同步服务器的时间)
  • Lua教程(二):基础知识、类型与值介绍
  • Lua中的函数知识总结
  • Lua中使用元表(metatable)执行算术类元方法实例
  • Cocos2d-x中调用Lua及HelloWorld.lua源码分解
  • Lua中调用函数使用点号和冒号的区别
  • C语言中通过LUA API访问LUA脚本变量的简单例子
  • Lua脚本获取喜马拉雅MP3音频地址
  • lua中赋值类型代码详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Lua中让回调函数支持回调对象方法的解决方法
    • Lua中执行系统命令方法介绍
    • Lua编程示例(四):Lua标准库之表库、字符串库、系统库
    • Lua中使用table实现的其它5种数据结构
    • Lua教程(五):迭代器和泛型for
    • Lua极简入门指南(三): loadfile和错误处理
    • lua脚本语言快速入门教程
    • Lua源码中字符串类型的实现
    • Lua中string.len()使用指南
    • Lua脚本实现递归删除一个文件夹

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有