Lua 实现面向对象 、继承、多态

本文介绍了如何在Lua中实现面向对象编程,利用元表和元方法来实现类、继承和多态。详细讲解了元表中的__index元方法,通过实例展示了如何创建类、设置继承,并探讨了Lua中的多态特性。
摘要由CSDN通过智能技术生成

前言

    在使用Unity进行游戏开发的时候,可以通过Lua进行脚本的编写,但是Lua与C#不同,C#是一个面向对象的语言,Lua是面向过程的语言,如何用Lua来实现面向对象编程,实现对象的继承和多态的特性呢。

Lua元表(Metatable)和元方法(__index)

    在Lua的table中我们可以访问对应的Key来得到Value值,但是无法对两个table进行操作。Lua提供了元表(metatable),可以通过其进行table之间的关联。

  • setmetatable(table,metatable): 对指定table设置元表(metatable)。

同时,可以通过元方法__index(注意是两个下划线), 作为键来指定一个匿名方法,或者table。

setmetatable(myTable,metatable) 中,myTable是我们自己定义的一个表,metatable是__index指定的表或者方法,就相当于让myTable背上了一个书包,当我们调用myTable里面的属性或者方法的时候经历如下步骤:

  1. 首先从自己身上找,如果找到就拿出来。
  2. 如果从自己身上找不到,从__index里找。
  3. 如果__in
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值