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)

输出

相关推荐
贾贾20231 小时前
配电网的自动化和智能化水平介绍
运维·笔记·科技·自动化·能源·制造·智能硬件
Ronin-Lotus2 小时前
上位机知识篇---ROS2命令行命令&静态链接库&动态链接库
学习·程序人生·机器人·bash
Kasper01213 小时前
认识Django项目模版文件——Django学习日志(二)
学习·django
xiaocao_10234 小时前
手机备忘录:安全存储与管理个人笔记的理想选择
笔记·安全·智能手机
索然无味io4 小时前
XML外部实体注入--漏洞利用
xml·前端·笔记·学习·web安全·网络安全·php
一弓虽4 小时前
java基础学习——jdbc基础知识详细介绍
java·学习·jdbc·连接池
王磊鑫4 小时前
Java入门笔记(1)
java·开发语言·笔记
安冬的码畜日常5 小时前
【Vim Masterclass 笔记22】S09L40 + L41:同步练习11:Vim 的配置与 vimrc 文件的相关操作(含点评课内容)
笔记·vim·vim配置·vim同步练习·vim options·vim option-list
五味香5 小时前
Java学习,List 元素替换
android·java·开发语言·python·学习·golang·kotlin
追Star仙6 小时前
基于Qt中的QAxObject实现指定表格合并数据进行word表格的合并
开发语言·笔记·qt·word