Lua语言面向对象之复制表的方式面向对象

// clone表table
function clone(tab)
    -- 构造一个空table
	local ins = {}
	for key, var in pairs(tab) do
		ins[key] = var
	end
	return ins
end

function copy(dist,tab)
	for key, var in pairs(tab) do
		dist[key] = var
	end
end

People ={}

--function People.sayHi()
--	print("People say hi")
--end

People.sayHi = function (self)
	print("People say hi:"..self.name)
end

People.new = function (name)
	local self = clone(People)
	self.name = name

	return self
end

--local p = clone(People)
--p.sayHi()

local p = People.new("ZhangSan")
--p.sayHi(p)
p:sayHi()


-- 继承
Man = {}
Man.new = function (name)
	local self = People.new(name)
    -- 把man表内容copy到self中
	copy(self,Man)
	return self
end

Man.sayHello = function ()
	print("Man say hello")
end

-- 重写
Man.sayHi = function (self)
	print("Man sayHi "..self.name)
end

local m = Man.new("Lisi")
m:sayHi()

lua面向对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值