-- Meta class
Rectangle = {}
--Rectangle = {area = 0, length = 0, breadth = 0}
Rectangle.area = 0
Rectangle.length = 0
Rectangle.breadth = 0
-- 派生类的方法 new
function Rectangle:create (length, breadth)
o = Rectangle:new()
self.length = length or 0
self.breadth = breadth or 0
self.area = length*breadth;
return o
end
function Rectangle:new (length,breadth)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
-- 派生类的方法 printArea
function Rectangle:printArea ()
print("矩形面积为 ",self.area)
end
-- Meta class
Clires = {}
--Rectangle = {area = 0, length = 0, breadth = 0}
Clires.area = 0
Clires.length = 0
Clires.breadth = 0
Clires.moneyPoint = {}
-- 派生类的方法 new
--Clires:create = function(length, breadth)
function Clires:create (length, breadth)
local o = Clires:new()
o.length = length or 0
o.breadth = breadth or 0
o.area = length*breadth
o.moneyPoint[1] = 2
o.moneyPoint[2] = 5
return o
end
--Clires.new = function()
function Clires:new (length,breadth)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
-- 派生类的方法 printArea
--Clires.printArea = function()
function Clires:printArea ()
print("圆面积为 ",self.area)
print("测试表o.moneyPoint[1]为 ", self.moneyPoint[1])
print("测试表o.moneyPoint[2]为 ", self.moneyPoint[2])
end
r = Rectangle:create(10,20)
print(r.length)
r:printArea()
h = Rectangle:create(20,20)
print(h.length)
h:printArea()
j = Clires:create(10,20)
print(j.length)
j:printArea()
k = Clires:create(20,20)
print(k.length)
k:printArea()