local a ={}
function a:new(param)
local n ={}setmetatable(n, self)
self.__index = self
self.name = param.name
self.value = param.value
return n
end
function a:printValue()print("a----- ", self.value)
end
function a:printName()print("a----- ", self.name)
end
实例化
local a_1 = a:new({name ="name_a", value ="value_a"})
a_1:printValue()
a_1:printName()print(a_1.name, a_1.value)
运行结果
a----- value_a
a----- name_a
name_a value_a
继承
local b = a:new({name ="", value =""})
function b:new(param)
local n = a:new(param)setmetatable(n, self)
self.__index = self
self.name_value = param.name
return n
end
function b:printAdd()print("b----printAdd")
end
function b:printName()print("b--------- ", self.name)
end
实例化
local b_1 = b:new({name ="name_b", value ="value_b"})
b_1:printValue()//调用父类a的成员函数
b_1:printAdd()//调用b的成员函数
b_1:printName()//b重载,调用b的成员函数print(b_1.name, b_1.value,b_1.name_value)//打印a父类成员变量及子类b新增成员变量