lua简单实现面向对象
--父类 local Person = { name = "XX" , age = 0 , PrintName = function(self) print("PersonName : "..self.name) end , new = function(self,name,age) obj = {} --创建并赋值实例的字段 obj.name = name obj.age = age setmetatable(obj , {__index = self}) return obj end , PrintAge = function(self) print(self.name.."age"..self.age); end } --子类 local Student = { PrintName = function(self) print("StudentName : "..self.name) end , new = function(self,name,age) obj = {} setmetatable(obj , {__index = self}) --创建并赋值实例的字段 obj.name = name; obj.age = age return obj end } setmetatable(Student , {__index = Person}) --Student.__newindex = Person local zhangsan = Student:new("zhangsan",20) local lisi = Person:new("lisi",25) zhangsan:PrintName() lisi:PrintName() --用的是父类的方法,但使用的数据是zhangsan的name和age(用self传过去的),字段无法实现继承,需要每个实例都创建 zhangsan:PrintAge() lisi:PrintAge()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了