Lua面向对象设计中添加super
来源:互联网 发布:泳衣走光 知乎 编辑:程序博客网 时间:2024/05/16 09:19
云风的lua oo 实现方法 http://blog.codingnow.com/2006/06/oo_lua.html
无法在子类的函数中使用super:xxx 调用父类的函数。
1.直接用父类调用
2.
目前我只想到在new函数中插一句obj.super = _class[super]
后来又想到可以把super放vtbl中,vtbl.super = _class[super]。这样占用空间少点,不用每个对象设置super。不过改变了一个既定规则,就是vtbl中都是函数。
使用方法:self.super.xxx(self,....)。不能采用self.super:xxx()。
假如test1 继承 test ,test 继承base_type。test1没定义hello,调用test1obj:hello()。
_class[test1] = vbtl, 这个vbtl.super 是_class[test]
但是结果却不如愿,因为这里self是test1的对象,test1没定义hello。
于是test1的vbtl去super 找,于是slef.super是test,而不是我们所期望的base_type。
test:hello()里面套了test:hello(),就形成无限循环崩掉了。
3.
super不应该从属于对象,而应该是类。所以self.super应该改成test.super。
test.super其实就是class_type.super,已经被占用了。只能另外用class_type.superclass了。
class()定义中加入 class_type.superclass = _class[super]
调用时为 test.superclass.hello(self)
- Lua面向对象设计中添加super
- Lua面向对象设计中添加super
- lua添加面向对象
- Lua中面向对象
- lua中的面向对象设计
- Lua 中实现面向对象
- Lua 中实现面向对象
- Lua 中实现面向对象
- Lua 中实现面向对象
- Lua中实现面向对象
- 面向对象中比较重要的this,static,super,单利设计的总结和归纳
- Lua的面向对象设计1
- 在 Lua 中实现面向对象
- Lua语言中面向对象的实现
- Lua中面向对象的实现
- 在 Lua 中实现面向对象
- JS中面向对象设计
- 【Lua】Lua之面向对象
- jQuery选择器整理
- 大众汽车平台PQ、MBQ简介
- 浙大PAT 1019. 数字黑洞 (解题报告)
- (libgdx学习)Preferences
- JDBC MySql
- Lua面向对象设计中添加super
- 编码中考虑的问题
- Spring3.0.5和Hibernate3.6.0集成的事务控制配置方法
- python服务器客户端实战tcp模式
- php 读取目录所有文件信息dir()
- eclipse打不开,只是闪一下问题解决方案。
- 取AB两字符串之间的正则
- WPF中DataGrid控件内Button的Command和CommandParameter的绑定
- linux命令hwclock用法详解