码迷,mamicode.com
首页 > 其他好文 > 详细

使用Cocos Code Ide开发之:lua继承的理解

时间:2014-09-12 18:47:13      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   div   sp   cti   

边写边错,边错边改,边改变搜,再改,改出了些心得。可能会有错误,多包涵,接受批评。

 1 ---Base.lua
 2 
 3 Base = {}                              
 4 
 5 Base.__index = Base
 6 Base.value = nil
 7 
 8 function Base:new(_value)
 9     local _t = {}
10     setmetatable(_t, Base)
11     _t.value = _value
12     return _t
13 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 = _type
13     return _c
14 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 --- .cpp
11 Base::setValue(_value)
12 {
13      value = _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继承的理解

标签:style   blog   color   io   os   使用   div   sp   cti   

原文地址:http://www.cnblogs.com/zxoling/p/3968856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!