Lua實現類和其繼承

2021-05-27 06:00:37 字數 1301 閱讀 4747

--[[

file name : lua_class.lua

author  :  clark/陳澤丹

created :  5:8:2011

purpose :  lua類探索

function newmap(mapname, mapid) --newmap類

local obj =

function obj:setname(mapname)

self.m_mapname = mapname

endfunction obj:getname()

return self.m_mapname

endfunction obj:setid(mapid)

self.m_mapid = mapid

endfunction obj:getid()

return self.m_mapid

endreturn obj

endmap1 = newmap("map001",1)

map100 = newmap("map100",100)

print(map1:getname(),map1:getid())

print(map100:getname(),map100:getid())

map1:setname("map001+")

map1:setid(1.5)

print(map1:getname(),map1:getid())

print(map100:getname(),map100:getid())

function newsupermap(mapname, mapid, mapsize) --newsupermap類

local obj = newmap(mapname, mapid)  --繼承於newmap類

obj.m_mapsize = mapsize

function obj:setsize(mapsize)

self.m_mapsize = mapsize

endfunction obj:getsize()

return self.m_mapsize

endreturn obj

endsuper_map1 = newsupermap("super_map1", 10000, 512)

print(map1:getname(),map1:getid())

print(map100:getname(),map100:getid())

print(super_map1:getname(),super_map1:getid(),super_map1:getsize())

lua 實現類 和 繼承

lua 實現類 繼承 需要以 table 表 的形式實現 table lua的資料結構之一 setmetatable a,b 設定a的元表為b 設定完元表之後 還要將 b的 index 指向自身 這樣的話 在a中查詢元素找不到的話,就會去b中查詢 如果b的 index沒有賦值,那麼及時b中存在也會返...

lua實現類的繼承

local class function class super local class type class type.ctor false class type.super super class type.new function local obj do 遞迴呼叫建構函式,實現構造基類的資料...

lua 類的繼承實現

1.lua 類中其實沒有類的概念,乙個類只是用乙個表 table 來管理的,如果想要實現子類繼承父類,簡單來說就是把兩個表組到一起。2.lua中提供了原表 metatable 可以通過原表來改變原來lua類的一些行為,比如把兩個表相加 a b father classfather.index cla...