博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lua 基础知识-面向对象
阅读量:7053 次
发布时间:2019-06-28

本文共 1697 字,大约阅读时间需要 5 分钟。

通过函数闭包的方式来实现面向对象

1 -- 通过函数闭包的方式来实现面向对象 2  3 function People(name) 4     local self = {} 5     local function init() 6       self.name = name 7     end 8      9     self.sayHi = function()10       print("Hello"..self.name)11     end12     init()13     return self14 end15 16 --local p = People("XiaoLi")17 --p:sayHi()18 19 -- 继承20 function Man(name)21     22     local function init()23       24     end25     26     local self = People(name)27     28     self.sayHi()  -- 调用父类的函数29     30     self.sayHi = function()31       print("重写父类的函数 sayHi")32     end33     return self34 end35 36 local m = Man("隔壁老王")37 m:sayHi()

 

通过复制表的方式来实现面向对象

1 -- Lua语言面向对象之复制表的方式面向对象 2  3 function clone(tab) 4   local ins = {} 5   for key, var in pairs(tab) do 6       ins[key] = var  7   end 8   return ins 9 end10 11 function copy(dist,tab)12   for key, var in pairs(tab) do13       dist[key] = var14   end15 end16 17 People ={}18 19 function People.sayHi(self)20     print("People sayHi"..self.name) -- .. 表示字符串连接21 end22 23 People.new = function(name)24   local self = clone(People)25   self.name = name26   27   return self28 end29 --30 --local p = clone(People)31 --p.sayHi()32 33 local p = People.new("Jinpp")34 -- p.sayHi(p)    -- 运行结果 People sayHiJinpp35 p:sayHi()   -- 运行结果 People sayHiJinpp36 37 38 -- 类的继承39 Man = {}40 Man.new = function(name)41   local  self = People.new(name)42   copy(self,Man)43   return self44 end45 --46 Man.sayHello = function()47   print("Man say Hello")48 end49 50 -- 函数的重写51 Man.sayHi = function(self)52   print("Man sayHi "..self.name)53 end54 55 local m = Man.new("Lisi")56 m:sayHello()57 m:sayHi()

 

蛮简单的特别好理解。2016年01月24日21:43:39

转载于:https://www.cnblogs.com/-jpp/p/5156060.html

你可能感兴趣的文章
中国人工智能学会通讯——一张图看懂BP算法 1.4 致谢
查看>>
《社交网站界面设计(原书第2版)》——第2章 2.0社交的核心
查看>>
直击英特尔IDF16:加速万物智能互联世界到来
查看>>
《中国人工智能学会通讯》——6.26 走向深度
查看>>
硅谷人工智能专家加盟销售易 为AI+CRM打开想象空间
查看>>
看虎牙Miss直播时最难受的是什么?
查看>>
中国人工智能学会通讯——一种基于众包的交互式数据修复方法 2 前期工作和问题陈述...
查看>>
几个面试经典算法题Java解答
查看>>
英方股份挂牌“新三板” :布局产业生态 深拓多种业务
查看>>
IBM大力发展慕尼黑Watson物联网总部,已经拥有了6000家客户
查看>>
公有云厂商自建威胁情报系统
查看>>
phpcms 2008 sp4的模板原理,tag的解析原理
查看>>
物联网安全:物联网从开源能够学到什么?
查看>>
《机器人自动化:建模、仿真与控制》——1.3 伺服电动机
查看>>
Gartner:企业重新思考软件安全战略
查看>>
热点推荐:2016年热门技术方向预测
查看>>
混合云平台为何更适合现代应用开发
查看>>
Linux交换空间(swap space)的那些优缺点
查看>>
我们该用什么姿态拥抱互联网+时代
查看>>
补天白帽大会五大热点前瞻
查看>>