Lua 面向对象(多态)
Object = {}
function Object:new()
local obj = {}
setmetatable(obj,self)
self.__index = self
return obj
end
function Object:subClass(className)
_G[className] = {}
local class = _G[className]
setmetatable(class,self)
self.__index = self
class.base = self
end
Object:subClass("GameObject")
GameObject.posX = 0
GameObject.posY = 0
function GameObject:Move()
print("GameObject移动")
self.posX = self.posX + 1
self.posY = self.posY + 1
print(self.posX)
print(self.posY)
end
GameObject:subClass("Player")
function Player:Move()
self.base.Move(self)
end
local p1 = Player:new()
p1:Move()
p1:Move()
local p2 = Player:new()
p2:Move()