Lua中多重继承的简单实现
来源:互联网 发布:确保数据的准确性 编辑:程序博客网 时间:2024/05/16 19:50
--多个table表中寻找对应key的值
function search(classes, key)
for i = 1, #classes do
local value = classes[i][key];
if value ~= nil then
return value;
end
end
end
local t1 = {name = "hehe"};
local t2 = {game = "who"};
print(search({t1, t2}, "game"));
--用于创建继承多类的子类
function createClass(...)
local parents = {...};
local child = {};
-- 设置类的元表
setmetatable(child, {
__index = function(table, key)
return search(parents, key);
end
})
-- 给类新增一个new函数,用于创建对象
function child:new()
o = {};
setmetatable(o, child);
child.__index = child;
return o;
end
-- 返回这个继承了多个类的子类
return child;
end
--上述测试用例
-- 一个精灵类
TSprite = {}
function TSprite:hello()
print("谁跟你hello!");
end
function TSprite:new()
o = {}
setmetatable(o, self);
self.__index = self;
return o;
end
-- 一个子弹类
TBullet = {}
function TBullet:fire()
print("别动,再动我就瞄不准了!");
end
function TBullet:new()
o = {}
setmetatable(o, self);
self.__index = self;
return o;
end
-- 继承了两个类的子类
local BulletSprite = createClass(TSprite, TBullet);
-- 子类的对象
local bSprite = BulletSprite:new();
bSprite:hello();
bSprite:fire()
阅读全文
0 0
- Lua中多重继承的简单实现
- lua 多重继承的实现在
- lua 多重继承的实现在
- Java中实现多重继承
- lua中实现类的继承
- lua 多重继承
- Lua 多重继承
- [读书笔记] Lua多重继承
- lua的简单对象实现以及简单继承
- lua 类、继承、多重继承
- 简单实现原生JS中的多重继承
- Java8中使用默认方法实现多重继承的测试
- 《Lua 程序设计》-16.3多重继承
- 改进lua多重继承机制
- cocos2dx lua 多重继承例子
- cocos-lua 多重继承的iskindof的BUG
- cocos2dx-lua中实现面向对象的封装继承
- lua实现类的继承
- Linux基础知识(1)
- 实现动态版本通讯录(在简易通讯录的基础上)
- springboot配置文件加载不到的问题
- poj3438_Look and Say_暴力水
- listview适配器模板快递开发集成缓存优化,滑动监听
- Lua中多重继承的简单实现
- 本地安装phpcms步骤
- 芯片里面长啥样?扫描电子显微镜放大10000倍告诉你!
- 扩大VMware虚拟机中CentOS 7的硬盘空间
- 2017年5月可用的KMS服务器
- OpenCV3.2.0配置 for VS2015
- 深入浅出ESP32开发之一Linux下ESP32交叉编译环境搭建
- java.lang.NoClassDefFoundError 的解决方法一例
- css一些兼容问题