lua 类继承和实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 类继承和实现相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/ssihc0/article/details/7742323

Account={balance=0}; --新建了一个对像,他有一个属性balance

function Account:new(o) --这里的 :new(o) 中的冒号,代码可以省略self ,在访问的时候object:new(o)  如果是点号 :new(o) 就应改成 .new(self,o)  在访问的时候 object.(object,o) 
    o= o or {}
    setmetatable(o,self); --O 继承 self   
    self.__index=self;--关联元表条目
    return o;
end

function Account.deposit(self,v)
    self.balance=self.balance+v;
end

function Account:withdraw(v)
    if (v) > self.balance then error "insufficient funds"; end
    self.balance=self.balance-v;
end

SpecialAccount=Account:new(); --create a new object class,basic Account class

s=SpecialAccount:new{limit=1000.00};--实例化一个新的SpecialAccount 对象
print (s.balance);
s:deposit(100.00);


function SpecialAccount:withdraw(v)
    if v-self.balance >= self:getLimit() then
        error "insufficient funds";
    end
    self.balance=self.balance-v;
end

function SpecialAccount.getLimit(self)
    return self.limit or 0;
end

print (s.limit);
print (s.getLimit(s))
print (s.balance)

 

以上是关于lua 类继承和实现的主要内容,如果未能解决你的问题,请参考以下文章

lua中使用table实现类和继承

Lua面向对象----类继承多继承单例的实现

Lua实现简单的类,继承,多态 实例

php如何实现多继承?

java 代码片段

如何使用 SWIG 从 lua 中的 C++ 类继承