lua中是没有类、对象的概念的,但是使用setmetatable和__index也可以实现对象操作。
创建一个父类
Person = {}
Person.color = "yellow"
function Person:create()
local l = {}
setmetatable(l,self)
self.__index=self
return l
end
创建2个子类继承父类
require "Person"
PersonWrite = Person:create()
PersonWrite.color = "write"
require "Person"
PersonBlack = Person:create()
PersonBlack.color = "black"
使用类
require "Person"
p0 = Person:create()
print(p0.color)
require "PersonWrite"
p1 = PersonWrite:create()
require "PersonBlack"
p2 = PersonBlack:create()
print(p1.color)
print(p2.color)
运行效果如下