在lua中实现面像对象概念,参考middleclass实现。
require "classes"
Game = class("Game")
function Game:Initialize()
end
function Game:Run()
print("Game:Run")
end
RPGGame = class("RPGGame", Game)
function RPGGame:Initialize()
end
function RPGGame:Run()
print("RPGGame:Run")
end
GameClass = Reflect.GetClass("RPGGame")
GameInstance = GameClass()
-- RPGGame:Initialize
-- Game:Initialize
GameInstance:Run()
-- RPGGame:Run
Game = class("Game")
Game.kRunThreadCount = 100
Game = class("Game")
function Game:Initialize()
Game.RunTime = 0;
end
Game = class("Game")
function Game:Run()
self:OverrideFunction()
end
function Game:OverrideFunction()
print("Game:OverrideFunction")
end
RPGGame = class("RPGGame", Game)
function RPGGame:OverrideFunction()
print("RPGGame:OverrideFunction")
end
GameInstance = RPGGame()
GameInstance:Run()
-- RPGGame:OverrideFunction()
Game = class("Game")
function Game:Run()
print("Game:Run")
self:OverrideFunction()
end
function Game:OverrideFunction()
print("Game:OverrideFunction")
end
RPGGame = class("RPGGame", Game)
function RPGGame:Run()
Game.Run(self)
print("RPGGame:Run")
end
function RPGGame:OverrideFunction()
print("RPGGame:OverrideFunction")
end
GameInstance = RPGGame()
GameInstance:Run()
-- Game:Run
-- RPGGame:OverrideFunction()
-- RPGGame:Run