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就行