关闭

Lua面向对象实现

标签: Lua面向对象
284人阅读 评论(0) 收藏 举报
分类:
function baseClass(base)  
     local cls = {}  
     if base then  
        cls = {}  
        for k,v in pairs(base) do cls[k] = v end  
        cls.base = base
    else  
        cls = {ctor = function() end}  
    end  
  
    --cls.__cname = classname  
    cls.__index = cls  
  
    function cls:new(...)  
        local instance = setmetatable({}, cls)  
        local create  
        create = function(c, ...)  
             if c.base then
                  create(c.base, ...)  
             end  
             if c.ctor then  
                  c.ctor(instance, ...)  
             end  
        end  
        create(instance, ...)  
        --instance.class = cls  
        return instance  
    end  
    return cls  
end

这个类主要是把基类和派生类绑定起来,并且调用ctor构造函数

用法如下

local base = baseClass()

function base:ctor()
end

function base:funcA()
end

function base:funcB(value)
end

local top = baseClass(base)

function top:ctor()
end

function top:funcB(value)
	self.base.funcA(self, value)
end

注意调用父类的方法要用"."别用":"是因为baseClass实现问题,不能用语法糖了

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

lua 面向对象的实现及原理

--[[ function func( ... ) -- 对于不定参数的使用 local args = {...} for k,v in ipairs(args) do print(v) e...
  • zhanghow
  • zhanghow
  • 2016-11-13 17:19
  • 1127

lua面向对象是怎么实现的

lua语言中没有真正意义的面向对象,而是通过函数模拟面向对象。我们来看是怎么一步步演化的。 1. 基本的函数 People = {} function People.sayHi() print(...
  • xingxiliang
  • xingxiliang
  • 2014-02-20 23:15
  • 1934

lua面向对象实现-类实例化对象、继承、多态、多继承、lua单例模式

lua面向对象实现: 一个类就像是一个创建对象的模具。有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例。lua则没有类的概念,每个对象只能自定义行为和形态。不过,要在l...
  • Y_23k_bug
  • Y_23k_bug
  • 2014-02-26 10:10
  • 7753

lua 面向对象的实现问题

一开始打算用最简单的形式,就是如下: function AIExecuteQueue:New() local o = {} setmetatable(o, self) s...
  • yxriyin
  • yxriyin
  • 2017-12-28 16:05
  • 17

Lua面向对象的实现方法

Lua实现面向对象方法大概整理了一些,分为以下两种方法:方法一:官方做法:实现类: local Class= { value=0 } function Class:new(o) ...
  • a958832776
  • a958832776
  • 2017-05-05 17:12
  • 680

lua面向对象实现的(记)

Lua中实现面向对象用的是元表的机制,元表与表是不同的个体,创建table时,不会自动创建元表。不过任何的表都可以有元表。setmetatable(table1,table2):table2会做为ta...
  • liaowuxing
  • liaowuxing
  • 2017-10-20 14:23
  • 61

lua面向对象是怎么实现的

http://www.2cto.com/kf/201402/280177.html lua语言中没有真正意义的面向对象,而是通过函数模拟面向对象。我们来看是怎么一步步演化的。 ...
  • love_hot_girl
  • love_hot_girl
  • 2014-04-17 03:14
  • 616

Lua实现面向对象的实验

这样对吗?关于实现Lua类继承的代码, 今天深入的思考了一下,首先来看看这段有问题的代码:local ClassA ={ msg = "111", --value msgtable...
  • bloodshadow
  • bloodshadow
  • 2016-10-08 23:31
  • 92

Lua中的面向对象实现探讨

元表概念 Lua中,面向对向是用元表这种机制来实现的。元表是个很“道家”的机制,很深遂,很强大,里面有一些基本概念比较难理解透彻。不过,只有完全理解了元表,才能对Lua的面向对象使用自如,才...
  • guang11cheng
  • guang11cheng
  • 2012-05-08 19:56
  • 4391

【Lua】面向对象的实现原理

元表概念 Lua中,面向对向是用元表这种机制来实现的。元表是个很“道家”的机制,很深遂,很强大,里面有一些基本概念比较难理解透彻。不过,只有完全理解了元表,才能对Lua的面向对象使用自如,才能在...
  • yhhwatl
  • yhhwatl
  • 2014-07-12 17:36
  • 1031
    个人资料
    • 访问:95515次
    • 积分:107
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:2篇
    • 译文:0篇
    • 评论:33条
    文章分类
    最新评论