╮(╯_╰)╭還是個人感覺,lua輕量簡潔的語法,正式在於表這種類似於物件的使用,表:
t = ------不使用funtion t.add(self,x)
self.a = self.a + x
結束t.add(5)
t = -------使用
函式t:add(x)
self.a = self.a + x
結束t:新增(5)
帳戶= - ---父類
函式account:new(o)------把account設定為o的元表,相當於父類.o為子類
o = o或{} - 不傳引數,則建立乙個空表
setmetatable(個體,o)
自.__指數=自
返回o結束
功能帳戶:存款(v)
self.balance = self.balance + v
結束功能帳戶:撤回(v)
如果v> self.balance,那麼錯誤「----」結束
self.banlance = self.balance-v
結束specialaccount = account:new() - 乙個子類
s = specialaccount:新的
s.deposit(100)----這時會查詢s的父類specialaccount,沒找到,再查詢account,找到deposit實現
本地函式搜尋(k,list)-----列表中存放所有的父類
對於i = 1,#列表做
本地v =列表[i] [k]
如果v然後返回v結束 - 假設子類沒有成員k,那就要到每個父類中查詢k是否為nil,不為nil就返回父類這個k
結束結束
函式createclass(...。)
本地c = {} - 新類
本地父=
setmetatable(c,)
c .__ index = c - 將c作為其實例的元表
函式c:new(o) - 為這個新類定義乙個新的建構函式
o = o或{}
setmetatable(o,c)
返回o結束
返回c - 返回新類
結束假設有兩個類,乙個是之前的帳戶,乙個是名稱類,他有兩個方法的setname,的getname:
命名= {}
函式名稱:getname()
返回self.name
結束函式name.setname()
self.name =正
結束現在建立乙個nameaccount類,同時從名稱和帳號派生,只需要呼叫createclass
nameaccount = createclass
賬戶= nameaccount:新
列印(帳戶:getname)---列印fcw
物件導向 多繼承
class master object def init self self.kongfu 古法煎餅果子配方 例項變數,屬性 def make cake self 例項方法,方法 print 古法 按照 s 製作了乙份煎餅果子.self.kongfu def dayandai self print ...
LUA物件導向程式設計(二)繼承
在lua中模擬類的繼承行為,可以通過setmetatable方法來實現。首先,我們就先實現乙個基類vehicle,然後再定義該基類的乙個子類bicycle,基類的定義與之前介紹的類的定義方法是一致的,如果你對此還不是很熟悉,可以先回顧一下 lua物件導向程式設計 一 類 基類vehicle的定義 類...
php物件導向多繼承實現
在php物件導向概念程式設計中,乙個子類只能繼承乙個父類,但是從php5.4後新增traits實現 復用機制變向達到多繼承。trait 為了減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類中復用方法集。2 trait會覆蓋繼承的方法,當前類會覆蓋trait方法 class peop...