Lua的继承
2020-02-04 03:44
337 查看
lua 的继承实现
在我看来,lua中的继承更像是一种覆盖,像是俄罗斯套娃一样,层层包裹的东西,但是里面的内容又是暴露在第一层。
上代码:
Bag = {} --创建基类 function Bag:new (object,volume) object = object or {} self.__index = self setmetatable(object, self) volume = volume or 0 object.volume = volume return object end -- 基类方法 printVolume function Bag:printVolume () print("包容量为 "..self.volume) end BackBag = Bag:new() function BackBag:new (object,volume,loads) object = object or Bag:new(object,volume) setmetatable(object, self) self.__index = self object.loads = loads or 1 return object end -- 子类方法 printVolume function BackBag:printVolume () print("背包容量为:"..self.volume.."载重为:"..self.loads) end local myBag = Bag:new(nil,40) local myBackBag = BackBag:new(nil,60,20) myBag:printVolume() myBackBag:printVolume()
运行结果为:
包容量为 40 背包容量为:60载重为:20 [Finished in 0.0s]
这种数据的覆盖,看似完成了继承但是却又似是而非,实在是奇怪
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 【学习笔记】lua中基于原型的继承
- LUA面向对象程序设计(四)多重继承
- Lua 继承,多态
- lua面向对象实现-类实例化对象、继承、多态、多继承、lua单例模式
- Lua的继承,封装,通用类
- lua继承实例
- lua中的继承
- cocos2d-x-lua基础系列教程四(lua多继承)
- Lua_在Lua中继承Cocos2dx的C++类
- Lua的面向对象——多重继承、私密性
- Lua的类实现继承、多态以及setmetatable方法
- lua(仿单继承)
- Lua实现类和其继承
- lua笔记1:类继承
- lua继承
- lua类的继承
- lua中的面向对象模拟,类,继承,多态
- Lua面向对象之类和继承浅析
- -- Lua 实现类继承 方法重写
- cocos2d-x 的lua继承