Lua继承的实现

实现继承的原理:利用table中的元表来实现 __index

__index元方法:用于查看表中元素或方法是否存在 如果不存在则返回nil 如果存在 则返回__idnex表中的结果

--单一继承的实现 利用元表来实现继承
Account = {name = "lili", balance = 10}
function Account:widthdraw(value)
	self.balance = self.balance + value
end

function Account:new(o)
	o = o or {}
	setmetatable(o, self)
	self. __index = self
	return o
end

local rto = Account:new()
rto:widthdraw(1000)
print("father area")
print("balance = " .. rto.balance)
print("name = " .. rto.name)

--子类继承父类
childAccount = Account:new({height = 200})
--子类重写父类方法
function childAccount:widthdraw(value)
	print("I am child ")
	self.balance = self.balance - value
end
local cto = childAccount:new()
cto:widthdraw(1)
print("-----------------")
print("child area")
print("balance = " .. cto.balance)
print("name = " .. cto.name)
print("height = " .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值