# 元类 class
# extends 继承
该函数实现了多重继承以及多继承
- 多重继承:
local classA = {}
local classB = extends(classA) { }
local classC = extends(classB) { }
1
2
3
4
2
3
4
多继承:
local classA = {}
local classB = {}
classC = extends(classA,classB) { }
1
2
3
4
5
2
3
4
5
class 是一个用来生成新类的类
例如
class.text = extends(class.panel) {
new = function (parent, ...)
--... 此处略去1万字
return object
end,
}
1
2
3
4
5
6
2
3
4
5
6
会给 text 类 默认生成几个模板函数
--创建控件
function class.text.create(...)
return class.text.new(nil,...)
end
--作为子控件被创建
function class.text.add_child(parent, ...)
return class.text.new(parent, ...)
end
--获取单例
function class.text.get_instance(...)
local instance = class.text.instance
if instance == nil then
instance = class.text.create()
class.text.instance = instance
end
return instance
end
--添加为父控件添加 子文本控件
--注意 这里是给 panel 注册的 所有 继承自panel类的 子类 都会自动拥有 add_text方法
function class.panel:add_text(...)
return class.text.new(self, ...)
end
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
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