通过一个例子说明
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实现OOP,可以继承,覆盖,sample里面实现了简单的lua类定义,并封装了简单的事件驱动机制
在lua中实现类,以及继承的方法,包括了一些例子
Lua中没有类的概念,但是程序猿说要面向对象,然后就有类。程序猿说要继承 和override,然后就有了继承 和 override 。程序猿说要有单例然后有了单例 这里用 Person 和 Student 来作为例子。有少许解释在代码中。
导出c++类、函数、变量等到lua的实现代码,提供思路。类似luabind、tolua++,部分特性如继承导出等暂未实现。
* 从Lua或C++类继承 * 覆写C++类的虚函数 * 注册类型间隐式的类型转换 * 最好匹配式签名匹配 * 返回值策略和参数策略 3 可移植性 LuaBind 已经通过下面的编译器环境的测试: Visual Studio 7.1 Visual Studio 7.0 ...
16.5 Single-Method的对象实现方法127 第17章 Weak表...............128 17.1 记忆函数...............130 17.2 关联对象属性.......131 17.3 重述带有默认值的表...............132 第三篇标准库134 第18章...
1 介绍 LuaBind 是一个帮助你绑定C++和Lua的库.她有能力暴露 C++ 函数和类到 Lua ....* 从Lua或C++类继承 * 覆写C++类的虚函数 * 注册类型间隐式的类型转换 * 最好匹配式签名匹配 * 返回值策略和参数策略
16.5 Single-Method的对象实现方法 第17章 Weak表 17.1 记忆函数 17.2 关联对象属性 17.3 重述带有默认值的表 第三篇 标准库 第18章 数学库 第19章 Table库 19.1 数组大小 19.2 插入/删除 19.3 排序 第20章 String库...
对象Lua Lua 的面向类的 OOP 模块这是一个面向类的 Lua 模块的实现,完全用 Lua 编码。 对象模型允许您覆盖new() (请参阅测试),因此您可以编写按照您想要的方式运行的类。 虽然仍处于设计阶段,但界面已变得相当...
源码:Java+Redis的库存处理(利用lua脚本) ...最终我们做了一个利用Redis处理库存的模板工具,需要使用直接写一个服务类继承 DdzStockTemplate,并定义自己的redis key 规则即可实现基本的库存加减。
一个在魔兽世界中通过继承实现面向对象框架类的库。 在《魔兽世界》中模拟框架类并不简单:Lua默认不支持类,并且一旦创建框架就无法将其释放。 更进一步,可以将框架分配给xml模板和全局名称,一旦设置就无法更改...
面向对象:Java全面支持面向对象的特性,如封装、继承和多态,使得代码更易于维护和扩展。 安全:Java提供了丰富的安全特性,如禁止指针运算、自动内存管理和异常处理机制,以减少程序错误和恶意攻击的可能性。 ...
2、机制简单, 没有类、没有继承等概念,类似拼积木 3、脚本简单 ,Lua脚本,目前最简单最快的脚本,主要用业务逻辑开发 开发效率高 1、跨平台:iOS、Android、Win32、linux、mac等 2、真机预览 在真机直接看到效果...
python针对lua的最大优势是python是完备的程序语言,类、模块包括丰富的库和方便好用的字符串操作,可以说python用来实现功能会优雅很多,而lua最大的优势就是小巧高效,另外lua的lua_state是可以有多个实例的,这样...
- 一个最小的 OOP 框架,仅用 30 行就支持类、继承和混合 - 高度压缩的实例序列化- 按位数据存储- 极快的纯 Lua 按位运算库- 围绕 DataStores 的包装 API,用于保存每个玩家的数据- 在两个 CFrame 之间轻松插值 - ...
它实现了和类API,但是为了提高速度而牺牲了很多兼容性: mixin和字段副本很浅; 如果您确实需要,请使用深层复制mt代理 混入所有字段; 不只是功能 完全避免单个继承副本 没有簿记,所有班级实际上都是匿名的 这...
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 添加、...
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 序列动作类...