`

lua实现类和继承

    博客分类:
  • lua
阅读更多
通过一个例子说明
local Person = {name, age} 
Person.__index = Person

function Person:talk(word) 
	print(self.name.." say "..word)
end

function Person:setAge(age) 
	self.age = age
end

function Person:getAge()
	return self.age
end

function Person:new(name, age) 
	local p = {}		
	setmetatable(p, Person)
	p.name = name
	p.age = age
	return p
end

return Person


local Student = {}
local Person = require 'Person'
setmetatable(Student, Person)
Student.__index = Student

function Student:new(name, age, score) 
	local self = {}
	self = Person:new(name, age)
	setmetatable(self, Student)
	self.score = score
	return self
end

function Student:setScore(score)
	self.score = score
end

function Student:getScore()
	return self.score
end

return Student


local Person = require 'Person'
local pa = Person:new("tom", 18);
pa:talk("hello");

local Student = require 'Student'
local st = Student:new("jim", 19, 100);
print(st:talk('nihao'));
print(st:getScore());


参考资料:
http://wuzhiwei.net/lua_make_class/
http://blog.sina.com.cn/s/blog_6b9d508001015qd3.html
分享到:
评论

相关推荐

    Lua 类的继承与函数override

    虽然没有内置的 class 关键字,但程序员可以通过自定义的构造函数和元表设置实现类的创建和继承。同时,通过覆盖父类的方法,可以实现特定子类的行为。这种方式虽然与传统的面向对象语言有所不同,但在灵活性和可...

    Lua 中实现类

    Lua的核心设计理念是简洁和轻量,因此它提供了元表(metatable)和函数作为其核心机制来实现类和对象的模拟。下面我们将详细探讨如何在Lua中实现类以及相关的OOP概念。 首先,我们要理解类的基本概念。类是一种抽象...

    lua语言实现类的原理

    lua类的实现

    Lua 类的继承与override

    本文将深入探讨 Lua 中如何实现类的继承以及方法的重写(override)。 首先,我们来理解 Lua 中的“类”。在 Lua 中,类通常被表示为一个表(table),这个表包含了类的一些属性和方法。创建一个类,我们可以定义一...

    Lua实现类继承

    在Lua中,由于其轻量级的特性和元表(metatable)机制,实现类继承并不像其他一些静态类型语言那样直接,但依然可以通过一些技巧来实现。以下将详细解析标题和描述中提到的Lua类继承实现方式。 首先,我们需要了解...

    lua面向对象实现

    例如,创建一个`Student`类继承自`Person`: ```lua Student = {} Student.__index = Person function Student:new(name, grade) local self = setmetatable({}, Student) self.name = name self.grade = ...

    Lua程序设计和lua-5.1中文手册

    元表和元方法则可以让你为表定制行为,实现类和继承的效果。 Lua 5.1的函数支持闭包,这是一种强大的特性,可以用来实现函数工厂、异步操作等高级功能。同时,Lua的错误处理机制基于长跳转,允许你在运行时优雅地...

    lua类封装方法

    在lua中实现类,以及继承的方法,包括了一些例子

    Lua中利用元表实现类和多态教程共28页.pdf.zip

    元表允许我们为任何值(包括表、字符串、数字等)添加元方法,这些元方法在特定操作下会被调用,从而实现类、继承和多态等概念。本教程“Lua中利用元表实现类和多态教程共28页”深入探讨了如何巧妙运用元表来构建...

    Lua 单例的实现

    Lua中没有类的概念,但是程序猿说要面向对象,然后就有类。程序猿说要继承 和override,然后就有了继承 和 override 。程序猿说要有单例然后有了单例 这里用 Person 和 Student 来作为例子。有少许解释在代码中。

    Lua程序设计,2~4版本pdf电子书,C的Lua语言原滋原味

    在Lua中,table是所有数据结构的基础,它既可以用作数组,也可以用作哈希表,甚至可以实现类和对象的概念。通过元表和元方法,开发者可以自定义表的行为,实现类似类的继承和多态。第四版进一步强化了这些特性,使得...

    Lua多重继承代码实例

    在Lua语言中,多重继承是一种面向对象编程的特性,它允许一个类同时继承多个父类的属性和方法。与单继承相比,多重继承能够提供更为灵活的类结构设计。尽管多重继承在Lua中不是内置的语言特性,但可以通过一些特定的...

    Lua中类的实现

    在Lua中,虽然原生语法并不支持类的...通过这种方式,即使Lua没有内置的类支持,我们也能构建出复杂的面向对象系统,实现类的继承和多态性。这证明了Lua的灵活性和适应性,使其成为一种适用于各种应用场景的脚本语言。

    用lua4.0模仿c++的指针和类的脚本以及lua4.0编译器

    在Lua 4.0中,虽然没有内置的类系统,但可以通过元表来实现类的模拟。我们可以创建一个基表作为类模板,然后在实例化时创建新的表,继承基表的属性和方法。重载和继承是C++中的关键特性,同样可以使用元表来实现。...

    Lua面向对象封装

    作者可能使用了伪类(__index metafield)和元方法(如__newindex)来实现类的继承和属性的动态绑定。例如,创建一个名为“Object”的基类,然后其他类可以通过这个基类进行扩展。 ```lua local Object = {} Object...

    LUA学习资料(包括Programming in Lua+Lua 5.1 参考手册+LUA5.0.2解释器)

    其中,对表的灵活运用是LUA的一大特色,书中会详细解析如何利用表实现类、继承和对象等面向对象编程的特性。此外,还涵盖了LUA的内存管理、C接口以及与C语言的交互,帮助读者掌握如何在C程序中嵌入和使用LUA。 ...

    Cpp2Lua 导出c++到lua

    `Cpp2Lua`项目正是连接这两种语言的桥梁,它实现了将C++的类、函数和变量导出到Lua的功能,以供Lua代码调用。本文将深入探讨这一技术实现及其应用。 一、`Cpp2Lua`的核心理念 `Cpp2Lua`的设计目标是为开发者提供一...

    lua api lua文档

    - **马尔可夫链算法**:使用Lua实现的一种统计模型。 #### 十一、Tables与Objects - **数据结构**:介绍Lua中各种数据结构的应用,如数组、矩阵、链表等。 - **数据文件与持久化**:如何将Lua数据结构保存到文件中...

    Lua游戏开发实践指南

    例如,通过元表可以实现面向对象编程的模拟,为游戏对象提供继承和多态性。 在脚本交互方面,Lua的字符串处理和正则表达式功能使游戏能够处理玩家输入、解析配置文件,甚至实现简单的自然语言处理。此外,Lua的错误...

    用lua4.0模仿c++的指针和类

    我们可以创建一个基类,然后为每个派生类设置其特有的元表,这样就可以实现继承和多态性。 ```lua local classMeta = { __index = classMeta } function class(name) local newClass = setmetatable({}, class...

Global site tag (gtag.js) - Google Analytics