`

lua实现类和继承

    博客分类:
  • lua
阅读更多
通过一个例子说明
local Person = {name, age} 
Person.__index = Person

function Person:talk(word) 
	print(self.name.." say "..word)
end

function Person:setAge(age) 
	self.age = age
end

function Person:getAge()
	return self.age
end

function Person:new(name, age) 
	local p = {}		
	setmetatable(p, Person)
	p.name = name
	p.age = age
	return p
end

return Person


local Student = {}
local Person = require 'Person'
setmetatable(Student, Person)
Student.__index = Student

function Student:new(name, age, score) 
	local self = {}
	self = Person:new(name, age)
	setmetatable(self, Student)
	self.score = score
	return self
end

function Student:setScore(score)
	self.score = score
end

function Student:getScore()
	return self.score
end

return Student


local Person = require 'Person'
local pa = Person:new("tom", 18);
pa:talk("hello");

local Student = require 'Student'
local st = Student:new("jim", 19, 100);
print(st:talk('nihao'));
print(st:getScore());


参考资料:
http://wuzhiwei.net/lua_make_class/
http://blog.sina.com.cn/s/blog_6b9d508001015qd3.html
分享到:
评论

相关推荐

    lua语言实现类的原理

    lua类的实现

    Lua实现类继承

    里给大家演示的是一个使用lua实现类继承的示例,实现类继承其实有很多种写法,这里是本人常用的方法,推荐给大家。

    lua面向对象实现

    Lua实现OOP,可以继承,覆盖,sample里面实现了简单的lua类定义,并封装了简单的事件驱动机制

    lua类封装方法

    在lua中实现类,以及继承的方法,包括了一些例子

    Lua 单例的实现

    Lua中没有类的概念,但是程序猿说要面向对象,然后就有类。程序猿说要继承 和override,然后就有了继承 和 override 。程序猿说要有单例然后有了单例 这里用 Person 和 Student 来作为例子。有少许解释在代码中。

    Cpp2Lua 导出c++到lua

    导出c++类、函数、变量等到lua的实现代码,提供思路。类似luabind、tolua++,部分特性如继承导出等暂未实现。

    LuaBind 源码 (Lua增强库)

    * 从Lua或C++类继承 * 覆写C++类的虚函数 * 注册类型间隐式的类型转换 * 最好匹配式签名匹配 * 返回值策略和参数策略 3 可移植性 LuaBind 已经通过下面的编译器环境的测试: Visual Studio 7.1 Visual Studio 7.0 ...

    Lua中文教程(pdf版)

    16.5 Single-Method的对象实现方法127 第17章 Weak表...............128 17.1 记忆函数...............130 17.2 关联对象属性.......131 17.3 重述带有默认值的表...............132 第三篇标准库134 第18章...

    luawrapper

    1 介绍 LuaBind 是一个帮助你绑定C++和Lua的库.她有能力暴露 C++ 函数和类到 Lua ....* 从Lua或C++类继承 * 覆写C++类的虚函数 * 注册类型间隐式的类型转换 * 最好匹配式签名匹配 * 返回值策略和参数策略

    lua 程序设计学习.doc 版

    16.5 Single-Method的对象实现方法 第17章 Weak表 17.1 记忆函数 17.2 关联对象属性 17.3 重述带有默认值的表 第三篇 标准库 第18章 数学库 第19章 Table库 19.1 数组大小 19.2 插入/删除 19.3 排序 第20章 String库...

    object-lua:[已弃用] Lua 的面向类的 OOP 模块

    对象Lua Lua 的面向类的 OOP 模块这是一个面向类的 Lua 模块的实现,完全用 Lua 编码。 对象模型允许您覆盖new() (请参阅测试),因此您可以编写按照您想要的方式运行的类。 虽然仍处于设计阶段,但界面已变得相当...

    源码:Java+Redis的库存处理(利用lua脚本)

    源码:Java+Redis的库存处理(利用lua脚本) ...最终我们做了一个利用Redis处理库存的模板工具,需要使用直接写一个服务类继承 DdzStockTemplate,并定义自己的redis key 规则即可实现基本的库存加减。

    Poncho-2.0:在魔兽世界中通过继承实现面向对象框架类的库

    一个在魔兽世界中通过继承实现面向对象框架类的库。 在《魔兽世界》中模拟框架类并不简单:Lua默认不支持类,并且一旦创建框架就无法将其释放。 更进一步,可以将框架分配给xml模板和全局名称,一旦设置就无法更改...

    棋牌的胡牌算法.zip

    面向对象:Java全面支持面向对象的特性,如封装、继承和多态,使得代码更易于维护和扩展。 安全:Java提供了丰富的安全特性,如禁止指针运算、自动内存管理和异常处理机制,以减少程序错误和恶意攻击的可能性。 ...

    lae界面系统,开发平台.适用于APP、软件、游戏等开发

    2、机制简单, 没有类、没有继承等概念,类似拼积木 3、脚本简单 ,Lua脚本,目前最简单最快的脚本,主要用业务逻辑开发 开发效率高 1、跨平台:iOS、Android、Win32、linux、mac等 2、真机预览 在真机直接看到效果...

    python解释器spython使用及原理解析

    python针对lua的最大优势是python是完备的程序语言,类、模块包括丰富的库和方便好用的字符串操作,可以说python用来实现功能会优雅很多,而lua最大的优势就是小巧高效,另外lua的lua_state是可以有多个实例的,这样...

    awesome-roblox:用于 Roblox 游戏开发的精选库、插件和资源列表

    - 一个最小的 OOP 框架,仅用 30 行就支持类、继承和混合 - 高度压缩的实例序列化- 按位数据存储- 极快的纯 Lua 按位运算库- 围绕 DataStores 的包装 API,用于保存每个玩家的数据- 在两个 CFrame 之间轻松插值 - ...

    0class:两个是玩具

    它实现了和类API,但是为了提高速度而牺牲了很多兼容性: mixin和字段副本很浅; 如果您确实需要,请使用深层复制mt代理 混入所有字段; 不只是功能 完全避免单个继承副本 没有簿记,所有班级实际上都是匿名的 这...

    像计算机科学家一样思考Python(第2版).pdf

    17.10 接口和实现 177 17.11 调试 178 17.12 术语表 179 17.13 练习 179 第18章 继承 181 18.1 卡片对象 181 18.2 类属性 182 18.3 对比卡牌 183 18.4 牌组 184 18.5 打印牌组 185 18.6 添加、...

    Cocos2D-X游戏开发技术精解

    4.2.1 动作类的继承关系 102 4.2.2 动作基类CCAction的成员函数 102 4.2.3 类CCNode中与动作有关的函数 104 4.3 时间动作 105 4.3.1 及时动作 105 4.3.2 持续动作 109 4.4 组合动作类 116 4.4.1 序列动作类...

Global site tag (gtag.js) - Google Analytics