lua實現繼承

lua本身沒有像C++一樣的繼承功能

但是我們可以自己實現一個類似C++的繼承功能

書本也有詳細介紹,不過讀起來確實費解,所以本人自己寫了一個簡單的繼承,一目瞭然,用來學習很容易入手

完整代碼

-- 基類
People = {}
function People:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end


-- 基類方法一
function People.dowork()
print("基類方法一")
end


-- 基類方法二
function People.gohome()
print("基類方法二")
end


-- 子類繼承基類
Boy = People:new()


-- 子類方法一
function Boy.study()
print("子類方法一")
end
function Boy.play()
print("子類方法二")
end


-- 開始調用  這裏s是子類對象,可以調用子類自有的功能,也可以調用基類的功能。。


-- 子類對象
s = Boy:new()
p = People:new()


print("下面是子類調用")
s.study() -- 子類方法一
s.play()  -- 子類方法二
s.dowork()-- 基類方法一
s.gohome()-- 基類方法二


print("下面是基類對象調用")
--p.study() -- 這兩個是子類特有的,基類對象不能調用
--p.play()
p.dowork() -- 基類方法一
p.gohome() -- 基類方法二

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章