服务器之家

服务器之家 > 正文

Lua多重继承代码实例

时间:2020-04-26 10:44     来源/作者:脚本之家

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

local function search(k, plist)

    for i, v in pairs(plist) do

        local temp_v = v[k]

        if temp_v then

            return temp_v

        end

    end

end

 

function createClass(...)

    local c = {}

    local parents = {...}

    

    --父类列表中搜索方法

    setmetatable(c, { __index = function(t, k) return search(k, parents) end } )

    c.__index = c

    

    --定义一个新的构造函数

    function c:new(o)

        o = o or {}

        setmetatable(o, c)

        return o

    end

    return c

end

 

Named = {}

 

function Named:getname()

    return self.name

end

 

function Named:setname(n)

    self.name = n

end

 

local NamedAccount = createClass(Account, Named)

account = NamedAccount:new({name = "Paul"})

print(account:getname())

 

标签:

相关文章

热门资讯

沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意
沙雕群名称大全2019精选 今年最火的微信群名沙雕有创意 2019-07-07
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部