print("*****************************面相对象总结*******************************")
object={}
--实例化方法
function object:new()
local obj={}
self.__index=self
setmetatable(obj,self)
return obj
end-------------------------如何new一个对象
function object:subClass(className)
_G[className]={}
local obj=_G[className]
obj.base=self
self.__index=self
setmetatable(obj,self)
end------------------------如何实现继承
object:subClass("GameObject")
GameObject.posX=0
GameObject.posY=0
function GameObject:move()
self.posX=self.posX+1
self.posY=self.posY+1
end
--实例化对象的使用
local obj=GameObject:new()
print(obj.posX)
obj:move()
print(obj.posX)
local obj2=GameObject:new()
print(obj2.posX)
obj2:move()
print(obj2.posX)
--申明一个新的类 player 继承gameobject
GameObject:subClass("player")
function player:move()---------------------如何重写方法
--base调用父类方法 用.自己传第一个参数
self.base.move(self)
end
print("*****")
local p1=player:new()
print(p1.posX)
p1:move()
print(p1.posX)
输出