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

来源:互联网 发布:手机照相摄像软件 编辑:程序博客网 时间:2024/06/01 10:33
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就行

0 0