Lua物件導向 多型

2022-09-17 00:12:13 字數 1695 閱讀 1098

多型,簡單的理解就是事物的多種形態。專業的術語說就是:同乙個實現介面,使用不同的例項而執行不同的操作。

工程結構:

--對該方法的呼叫體現了多型

11function

baseroom:size()

12return

10013

end14

15function

baseroom:getsize()

16return self:size()*2

17end

1819

return baseroom

marryroom.lua:

1

require

"baseroom"2

3 marryroom ={}45

function

marryroom:new()

6setmetatable

(marryroom, baseroom)

7 baseroom.__index =baseroom

89 self ={}

10setmetatable

(self,marryroom)

11 marryroom.__index =marryroom

1213

return

self

14end

1516

--對該方法的呼叫提現了多型

17function

marryroom:size()

18return

5019

end20

21return marryroom

starroom.lua:

1

require

"baseroom"2

3 starroom ={}45

function

starroom:new()

6setmetatable

(starroom,baseroom)

7 baseroom.__index =baseroom

89 self ={}

10setmetatable

(self,starroom)

11 starroom.__index =starroom

1213

return

self

14end

1516

--對該方法的呼叫體現了多型

17function

starroom:size()

18return

2019

end20

21return starroom

碼雲上的相關工程:

Lua 繼承 多型 單利模式 物件導向

lua模擬物件導向程式設計中得繼承 多型,這裡也同時演示設計模式中得單利模式,類的實現都是通過lua中table,這個table太強大了,又可以當集合 陣列 宣告,這裡宣告了類名還有屬性,並且給出了屬性的初始值。class2 class2.a class2 aaa class2.b class2 b...

LUA物件導向程式設計(三)多型

先來了解一下多型的概念。在物件導向語言中,多型本質就是執行時繫結,比如有乙個父類baseclass,它有2個子類subclass1,subclass2。baseclass有乙個方法func 兩個子類都重寫了這個方法。那麼我們可以定義乙個baseclass的引用obj,讓它指向乙個子類的物件,比如ba...

Lua的物件導向,封裝,繼承,多型

我們總所周知物件是由屬性和方法組成的,要用lua要描述乙個物件,也必然要有這兩個特性,屬性和方法。lua的基本結構是table,所以lua的類,其實都是table,因為它可以儲存普通的變數又可以儲存方法,我們利用table就可以描述乙個物件的屬性和方法。其實lua要模擬乙個物件,關鍵就在於 inde...