[关闭]
@Satellite-109 2020-04-07T03:23:24.000000Z 字数 599 阅读 922

Lua 实现类以及继承

Lua 继承


1.原理

主要实现语法

主要通过 lua 中的元表来实现,元表来实现不同的表之间的操作

2.实现

  1. local _M = {}
  2. -- 这里主要模拟类
  3. function _M:new(name)
  4. self.__index = self
  5. self.name = self.name or name
  6. return setmetatable({}, self)
  7. end
  8. function _M:print()
  9. print("Name is ", self.name)
  10. end
  11. local a = _M:new("satellite")
  12. a:print()
  13. --=======================分割线=========================
  14. -- 这里主要实现了继承,通过设置元表为另一个表实现表之间的操作
  15. local A = {}
  16. function A:new(name, age)
  17. local m = _M:new(name)
  18. self.age = self.age or age
  19. setmetatable(self, {__index = m})
  20. return self
  21. end
  22. function A:getAge()
  23. print(self.name, " is ", self.age)
  24. end
  25. a = A:new("Satellite", 11)
  26. a:getAge()

3.setmatatable() getmatatable()

getmetatable() 用法 以及 setmetatable() 用法

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注