首页 > 代码库 > 使用Cocos Code Ide开发之:lua继承的理解
使用Cocos Code Ide开发之:lua继承的理解
边写边错,边错边改,边改变搜,再改,改出了些心得。可能会有错误,多包涵,接受批评。
1 ---Base.lua 2 3 Base = {} 4 5 Base.__index = Base 6 Base.value = http://www.mamicode.com/nil 7 8 function Base:new(_value) 9 local _t = {}10 setmetatable(_t, Base)11 _t.value = http://www.mamicode.com/_value12 return _t13 end
1 ---Children.lua 2 require("Base") 3 Children = {} 4 5 setmetatable(Children, Base) 6 Children.__index = Children 7 Children.type = nil 8 9 function Childeren:new(_value,_type)10 local _c = Base:new(_value)11 setmetatable(_c, Children)12 _c.type = _type13 return _c14 end
Base.lua 是基类,Children.lua 是继承Base.lua的子类,可能大家习惯了C++,我转下
1 --- .h 2 3 class Base 4 { 5 public: 6 void setValue(_value) 7 int value; 8 } 9 10 --- .cpp11 Base::setValue(_value)12 {13 value =http://www.mamicode.com/ _value;14 }15 16 main()17 {18 Base* b = new Base();19 cout << b.value << endl;20 }
这里的 b 和 上面的 _t,我认为是一样的,都是一个对象,_t 是 table 类型的,
_t.value 就像 b.value.
setmetatable(Children,Base): 将 Childeren 的元表设置为 Base ,
setmetatable(_c, Children) : 将 _c 的元表设置为 Children,
举个例子吧:
_c : 儿子 Children :爸爸 Base : 爷爷
儿子 想买一个玩具,若 : 1. 自己有钱,直接买,获得到玩具
2. 自己没钱,去搜索 爸爸 的裤兜,若有钱,获得到钱,买玩具
3. 自己没钱,去搜索 爸爸 的裤兜,若没有钱,去搜索 爷爷 的裤兜,若有钱,获得到钱,买玩具, 若没钱, 两手空空,只能是 nil
类方法也是如此。
使用Cocos Code Ide开发之:lua继承的理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。