Loading

Lua 面向对象的实现

面向对象三大特性

  • 封装
  • 继承
  • 多态

Lua的面向对象

Lua语言本身并不是为了面向对象而设计,但是可以通过Lua的tablemetatable等语言特性来实现面向对象。
通过将字段、函数放入表中,形成对象。可使用元表实现继承


代码实现

1、封装

创建Cat猫基类,具有Run( )方法

---@class Cat 猫
local Cat = {}

Cat.__index = Cat

--- 构造函数
---@param self Cat
function Cat.New(self)

    local newObj = {}

    setmetatable(newObj, Cat)

    return newObj
end

--- 跑步方法
---@param self Cat
function Cat.Run(self)
    print('Cat Run()')
end

return Cat

创建Cat类的对象

Cat = require('Cat')
local cat = Cat.New(nil)
cat.Run()

运行结果
image


2、继承

后续补充


Tips:需要理解Lua的table、metatable机制,才能更好的理解在Lua中实现面向对象

posted @ 2022-06-20 00:05  云小孤  阅读(158)  评论(0)    收藏  举报