您的位置:首页 > 编程语言 > Lua

Lua:复制表的方式实现面向对象

2017-06-30 17:09 399 查看
面向对象类的使用

--克隆函数
function clone(tab == nil)
local ins = {};
for key,var in pairs(tab) do
ins[key] = var;
end
return ins;
end

People = {} ;

--有参构造函数
function People.New(name)
local self = clone(People);
self.name = name;
return self;
end

function People.sayHi()
print("People sayHi!");
end

local p1 = clone(People);
p1.sayHi();

local p2 = People.new("ZhangSan");
p2.sayHi();


面向对象继承

--Man类继承People

function Copy(dist,tab)
for key,var in pairs(tab) do
dist[key] = var
end
end

Man= {};
function Man.new(name,age)
local self = People.new(name)
self.age =age;
copy(self,Man);
return self;
end

Man.SyHello = function()
print("Man say hello");
end

--重写父类函数
Man.sayHi = function(self)
print("Man sayHi"..self.name..self.age);
end

local m = Man.new("zhangsan",29);
m.sayHi();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: