Lua繼承(使用table實現)

2021-10-07 09:30:12 字數 1014 閱讀 2312

lua本身是不能像c++那樣直接實現繼承,我們可以用萬能的table表來實現。廢話不多說,直接上**:

父類 people.lua

people =

people.name =

"人"people.age = 18 --預設18歲

function people:speak(str)

print(self.name ..

"("..self.age..

"歲):"

.. str)

endfunction people:new(obj) --只針對people寫的new方法

obj = obj or

return setmetatable(obj,

)end

function new(obj) --公共繼承方法(與上面的方法都可以單獨實現)

local temp =

return setmetatable(temp,

)end

子類 student.lua

require(

"people"

)student01 = people:new(

)student01.name =

"小王"

student01.age = 19

student01:speak(

"我愛吃雞蛋"

)student02 = people:new(

)student02.name =

"小張"

student02:speak(

"我愛吃辣條"

)student03 = people:new(

)student03:speak(

"我是誰?"

)student04 = new(people)

student04:speak(

"我是誰?"

)

結果如下:

lua使用table問題

今天在開發的時候,自己建立了乙個table。建立 如下 self.skill value table self.skill table for i 1,8 do self.skill table i self.skill value table end這樣每次去改變self.skill table ...

lua實現繼承

lua本身沒有像c 一樣的繼承功能 但是我們可以自己實現乙個類似c 的繼承功能 書本也有詳細介紹,不過讀起來確實費解,所以本人自己寫了乙個簡單的繼承,一目了然,用來學習很容易入手 完整 基類 people function people new o o o or setmetatable o,sel...

lua之table的使用

本文對從資料結構,儲存和使用三個角度對lua之table的使用進行小結。資料結構 table是lua的一種資料結構,可以用來存放各種型別的元素,例如可以建立陣列和字典,以及二者混合的資料結構,例如 a 陣列 b 字典 c 陣列元素和字典元素混合 儲存 lua的table使用陣列和雜湊表結合的方式,使...