Lua中的面向对象[3]:再继承
2016-03-04 16:47
447 查看
local TBaseClass = { a = 1, b = 2, } function TBaseClass:fun1() print("TBaseClass:fun1"); print(tostring(self)); print(tostring(TBaseClass)); print(self.a.." -> self.a"); print(self.b.." -> self.b"); end; function TBaseClass:create() local tb = {}; setmetatable(tb, {__index = self,}) tb.super = self; return tb; end; TBaseClass:fun1(); local pBaseClass = TBaseClass:create(); pBaseClass:fun1(); local TMyClass = TBaseClass:create(); function TMyClass:fun1() print("TMyClass:fun1"); print(tostring(self)); print(tostring(TMyClass)); print(tostring(TBaseClass)); print(self.a.." -> self.a"); print(self.b.." -> self.b"); end; local pMyClass = TMyClass:create(); pMyClass:fun1();
输出结果是
TBaseClass:fun1
table: 004BB4A8
table: 004BB4A8
1 -> self.a
2 -> self.b
TBaseClass:fun1
table: 004BB778
table: 004BB4A8
1 -> self.a
2 -> self.b
TMyClass:fun1
table: 004BB8E0
table: 004BB868
table: 004BB4A8
1 -> self.a
2 -> self.b
TMyClass:fun1
table: 004BB868
table: 004BB868
table: 004BB4A8
1 -> self.a
2 -> self.b
TBaseClass:fun1
table: 004BB4A8
table: 004BB4A8
1 -> self.a
2 -> self.b
只要用create就行
相关文章推荐
- lua面向对象
- Mac下导出c++到Lua失败
- Lua中的面向对象[2]:使用指针
- Lua中的面向对象[1]: lua中的 self
- [LeetCode]150. Evaluate Reverse Polish Notation
- 97.View the Exhibit and evaluate the structure and data in the CUST_STATUS table.
- Mac下安装Lua。
- Lua类型与值
- Lua加载模块
- lua的sockets库简单实用
- Lua学习笔记之字符串及模式匹配
- 快速掌握Lua 5.3 —— I/O库 (2)
- Java中使用Lua脚本语言(转)
- lua、groovy嵌入到java中的性能对比(转)
- c++调用lua的基本操作
- mac 安装lua命令
- lua中获取系统当前的时间
- lua调用的c函数模块命名规则
- Lua学习笔记5:类及继承的实现
- Lua 的简单介绍