lua学习笔记2
来源:互联网 发布:java string转map 编辑:程序博客网 时间:2024/06/04 19:15
一开始,我以为在类里面添加一个类为元表就可以实现继承,但是总是报错,所以很烦恼,今天刚好有空,就来研究了一下,终于知道了原由
废话不说了,上代码:
--lua中的类的使用方法
--@people类
people = {name }
function people:new(p)
p = p or {}
setmetatable(p, self)
self.__index = self
return p
end
function people:getname()
print(self.name)
end
这是一个基础类,我是作为父类来对待的。
-@学生类 继承people类
student = {age}
function student:new(s)
s = s or {}
setmetatable(s, self)
self.__index = self
setmetatable(s , {__index = student})
return s
end
function student:setAge()
print(self.age)
end
这是另外一个类,我想把他作为子类,但是现在还不是子类,还是一个简单的类:
加上一句话,让people成为student的父类:
setmetatable(student,{__index = people});
这样就算完成了,对父类的继承了,下面我们来看一看效果:
local pppp = student:new{}
pppp.sex = 'man'
pppp.name = "李小龙"
print(pppp.sex..pppp.name)
pppp:getname()
由此可以看得出来,类的元素可以随意在任何地方添加,这也是lua中表的特性。
看到没有,子类的student的对象可以调用父类的方法了,getname(),输出结果如上。
下面再看一看子类自己的方法:
pppp:setAge()
pppp.age = 24
pppp:setAge()
再看看结果:
是不是一目了染,很清晰。
千万不要把setmetatable(student,{__index = people});这句话写到student的new中,因为这样你会发现会出现一些莫名的问题。
- lua学习笔记(2)
- lua学习笔记2
- Lua学习笔记-2
- lua学习笔记2
- Lua学习笔记(2): 协程
- Lua学习笔记2:变量
- Lua学习笔记2-数据类型
- lua学习之旅2--学习笔记
- Lua学习笔记(2) : 取得Lua中的变量
- Lua中文教程学习笔记 (2) 表达式
- Lua学习笔记(2):基本语法
- Lua学习笔记(2)-语句、函数
- Lua学习笔记(1)
- Lua学习笔记一
- Lua学习笔记一
- Lua学习笔记一
- Lua学习笔记一
- Lua学习笔记二
- Dom事件
- 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)
- RxJava源码阅读备忘
- 汇编--学习笔记(九)-堆栈
- 离散题目11
- lua学习笔记2
- Python次位面——发送电子邮件
- Java 登陆失败锁定用户
- mail,postfix,postpix+mariadb,dovecot,dovecot+mariadb,postfix空壳邮件
- PHP 时间 日期
- C语言-数据结构-图的遍历
- Fréchet distance
- 判断radio是否有选中获取选中的值
- vue仿163musicPC端