lua学习笔记17(面相对象之继承)

Lua 复制代码
print("*****************************面相对象继承*******************************")
object={}
object.id=1
function object:new()
	local obj={}
	self.__index=self 
	setmetatable(obj,self)
	return obj
end
function object:text()
	--面相对象的类其实就是基于table来实现的
	print(self.id)
end
print("******************************")
function object:subClass(className)
	--创建一个名为className的空表
	_G[className]={}
	--大G表是总表 所有声明的全局变量 都以键值对的方式存放在其中
	local obj=_G[className]--定义局部变量等于空表
	self.__index=self
	setmetatable(obj,self)--将空表和object这张表连接起来
end
print(_G)
_G["a"]=114514
_G.b="123"
print(a)
print(b)
print("***********")
object:subClass("person")
print(person.id)

local p1=person:new()--创建了一个继承object的一张表
print(p1.id)
p1.id=55555
print(p1.id)
p1:text()

object:subClass("ak")--创建了一个继承object的一张表ak
local m1=ak:new()--创建了一个继承ak的一张表
print(m1.id)
m1.id=200
print(m1.id)
m1:text()
--print(person)
--print(person.id)
--local p1=person:new()
--print(p1.id)

输出

相关推荐
fantasy_arch18 分钟前
LSTM模型学习分析
人工智能·学习·lstm
潲爺42 分钟前
《Java 8-21 高频特性实战(上):5 个场景解决 50% 开发问题(附可运行代码)》
java·开发语言·笔记·学习
2301_800050991 小时前
ceph分布式存储
笔记·分布式·ceph
YJlio1 小时前
Contig 学习笔记(13.5):整理现有文件碎片的策略与批量实战
笔记·学习·stable diffusion
week_泽1 小时前
8、OpenCV BF暴力特征匹配笔记
人工智能·笔记·opencv
Master_oid1 小时前
机器学习27:增强式学习(Deep Reinforcement Learn)②
人工智能·学习·机器学习
全栈游侠2 小时前
GT2933触摸驱动分析 -中断处理
linux·笔记
找方案2 小时前
hello-agents 学习笔记:解锁智能体三大经典范式,从原理到实战
javascript·笔记·学习·hello-agents
Sunsets_Red2 小时前
待修改莫队与普通莫队优化
java·c++·python·学习·算法·数学建模·c#
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之lsattr命令(实操篇)
linux·运维·服务器·笔记·elasticsearch