lua 类与继承

试试lua中的对象与继承,多说句,多继承我写c++也没用过,直接上组合就ok,因此lua的多继承如果非必须也同样可用用其他方法来实现

--lua 类与继承的实验
local Str={str="",num=0}
function Str:new(s)
	s = s or {}
	--为对象绑定metatable为Str
	setmetatable(s,{__index=self})
	return s
end

function Str:count(line)
	self.str=line
	for w in string.gmatch(line,"%w+")
	do
		self.num = self.num + 1
	end
end

--这就相当于是继承下来,之后调用Driver的函数时,self都是Driver
Driver = Str:new()
function Driver:count(line)
	self.str=line
	self.num=string.len(line)
end

function Driver:print()
	io.write(string.format("Driver print,member str '%s' meber num '%d'\n",self.str,self.num))
end
	

obj1=Str:new()
teststr="a,b,c,213 helooa wod =af da"
obj1:count(teststr)
io.write(string.format("object one,member str '%s' meber num '%d'\n",obj1.str,obj1.num))

--这3行输出表明了obj1的成员数据不会影响后续对象,也不会影响Str的数据变动
obj2=Str:new
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值