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使用陣列和雜湊表結合的方式,使...