前文须知
Lua 中的每个值都可以有一个 元表。 这个 元表 就是一个普通的 Lua 表, 它用于定义原始值在特定操作下的行为。 如果你想改变一个值在特定操作下的行为,你可以在它的元表中设置对应域。 例如,当你对非数字值做加操作时, Lua 会检查该值的元表中的 "__add" 域下的函数。 如果能找到,Lua 则调用这个函数来完成加这个操作。
表的简单使用可参考 :Lua学习笔记:Lua里table表的使用例及介绍
元表的简单使用可参考:Lua学习笔记:Lua里metatable元表的使用
而熟悉Lua表和元表的都知道,通过元表的 __index 字段可以让表 t 获得一些本身没有的字段, 通过这样的一个形式,我们就可以达到从实例中调用类的方法,这样我们就可以把Lua的元表比作C 中的纯虚类,通过把Lua的元表当做一个普通表的 方法类,去实现Lua Class.