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 @   云小孤  阅读(125)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示
主题色彩