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

Lua中的面向对象[3]:再继承

2016-03-04 16:47 447 查看
local TBaseClass = {
a = 1,
b = 2,
}

function TBaseClass:fun1()
print("TBaseClass:fun1");
print(tostring(self));
print(tostring(TBaseClass));
print(self.a.." -> self.a");
print(self.b.." -> self.b");
end;

function TBaseClass:create()
local tb = {};
setmetatable(tb, {__index = self,})
tb.super = self;
return tb;
end;

TBaseClass:fun1();
local pBaseClass = TBaseClass:create();
pBaseClass:fun1();

local TMyClass = TBaseClass:create();

function TMyClass:fun1()
print("TMyClass:fun1");
print(tostring(self));
print(tostring(TMyClass));
print(tostring(TBaseClass));
print(self.a.." -> self.a");
print(self.b.." -> self.b");
end;

local pMyClass = TMyClass:create();
pMyClass:fun1();

输出结果是

TBaseClass:fun1

table: 004BB4A8

table: 004BB4A8

1 -> self.a

2 -> self.b

TBaseClass:fun1

table: 004BB778

table: 004BB4A8

1 -> self.a

2 -> self.b

TMyClass:fun1

table: 004BB8E0

table: 004BB868

table: 004BB4A8

1 -> self.a

2 -> self.b

TMyClass:fun1

table: 004BB868

table: 004BB868

table: 004BB4A8

1 -> self.a

2 -> self.b

TBaseClass:fun1

table: 004BB4A8

table: 004BB4A8

1 -> self.a

2 -> self.b

只要用create就行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: