<8>Lua继承
模拟继承方式
代码:
--继承
--  基类:Person
local Person = {}  --基类的表
--  方法
function Person:test()
	print("Person:test()",self)
end
function Person:new(instance)
	if not instance then
		instance = {}
	end
	local meta_Person = {
		__index = self,
	}
	setmetatable(instance,meta_Person)
	return instance
end
--end
--  子类:man
local Man = Person:new()
--  方法
function Man:test_man()
	print("man:test_man",self)
end
--end
--实例化子类
local p = Man:new()
print("p ==== ",p)
p:test_man()
p:test()  --Person:setName()结果:
1: 子类的表是父类的一个实例
2: 子类的表作为一个原型再new了一个表;
类的实实例-->元表-->子类的表-->元表-->父类的表;
3: 现在子类的实例找,找不到到元表找,元表找不到,到元表的元表找;
4: 子类重载父类的函数;
首先在实例表里查找---》子类查找--》父类查找等等
5: 子类调用父类的函数;
<8>Lua继承的更多相关文章
- lua继承
		lua中其实是没有类的,有的只是表(table) lua查找一个表元素时的规则,其实就是如下3个步骤: 1.在表中查找,如果找到,返回该元素,找不到则往下看: 2.判断该表是否有元表,如果没有元表,返 ... 
- 对lua继承中self.__index = self的释疑
		首先看看从lua表中查找一个键时的流程: -- 当从表t中查找键k时,lua处理如下: -- 1.t中是否有k,有则直接返回值,否则第2步 -- 2.t是否有元表, 无则返回nil, 有则第3步 -- ... 
- cocos2dx开发中的lua继承与覆盖C++方法
		http://www.litefeel.com/lua-override-userdata/ 
- Lua继承userdata
		http://blog.csdn.net/mywcyfl/article/details/37765751 http://blog.csdn.net/teng_ontheway/article/det ... 
- 手游开发之lua的class函数详解
		众所周知,lua没有类这个概念但其通过table实现了面向对象的“类”.在cocos2dx引擎下提供了class(className, ...)函数方法名,因为在脚本开发中这个接口基本都会用来创建一个 ... 
- class() 高级用法 -- lua
		class() 高级用法 class() 除了定义纯 Lua 类之外,还可以从 C++ 对象继承类. 比如需要创建一个工具栏,并在添加按钮时自动排列已有的按钮,那么我们可以使用如下的代码: -- 从 ... 
- lua面向对象编程 《lua程序设计》 16章 笔记
		Lua中的table就是一种对象,即它拥有状态.拥有独立于其值的标识(self).table与对象一样具有独立于创建者和创建地的征集周期 什么叫对象拥有独立的生命周期? Account = {bala ... 
- Lua表(table)的个人总结
		1.表的简介和构造 table是个很强大且神奇的东西,又可以作为数组和字典,又可以当作对象,设置module.它是由数组和哈希表结合的实现的.他的key可以是除nil以外任意类型的值,key为整数时, ... 
- `cocos2dx非完整` 日志模块 增量更新
		在上一篇文章中,说到了"流程"的由来,以及我对流程的使用. 这一片就是对流程的应用.前一篇文章中说到了三条流程 check_log_measure, check_env_measu ... 
随机推荐
- [https][ssl] keyless SSL
			HTTP Server 集群前的负载设备,或内容审计设备等,在处理https的时候,需要用户配置提供证书. 但是考虑到安全问题,HTTP Server并不愿意把证书配置到其他设备上. 这个时候,就有个 ... 
- [development][PCRE] old PCRE
			介绍, man手册 txt版 http://www.pcre.org/original/pcre.txt html版 http://www.pcre.org/original/doc/html/pcr ... 
- $ORACLE_HOME/OPatch/opatch lsinventory查oracle补丁
			> $ORACLE_HOME/OPatch/opatch lsinventoryInvoking OPatch 10.2.0.4.2 Oracle Interim Patch Installer ... 
- kubernetes有状态集群服务部署与管理
			有状态集群服务的两个需求:一个是存储需求,另一个是集群需求.对存储需求,Kubernetes的解决方案是:Volume.Persistent Volume .对PV,除了手动创建PV池外,还可以通过S ... 
- 【pyqtgraph】pyqtgraph-鼠标互动
			pyqtgraph绘图库官方文档学习-鼠标互动(mouse interaction) 鼠标互动 大多数使用pyqtgraph数据可视化的应用程序都会生成可以使用鼠标进行交互式缩放,平移和配置的小部件. ... 
- 跨域的问题(nginx解决才是王道)
			跨域分为两类:一时get跨域,而是post跨域.常见的是三种: 一种是jsonp, $.ajax({ url: "http://127.0.0.1/~chenjiebin/mycode/ph ... 
- webmin小结
			centos7安装webmin https://www.cnblogs.com/andy9468/p/10537201.html webmin重置密码 重置webmin账户root的密码为例: htt ... 
- centos安装Django之一:安装openssl
			这几天在部署Django,需要安装的东西有点多,python3.pip3.openssl(pip依赖ssl环境),所以第一步是安装openssl,如何安装呢?主要有三步,随ytkah一起来看看吧 1. ... 
- git branch 命令查看分支、删除远程分支、本地分支
			git branch 命令操作 1.查看本地分支 : git branch 前面带有*号的是当前分支 2 .删除本地分支: git branch -d [branchname] 提示删除了一个名为li ... 
- react +webpack 配置px2rem
			项目背景需要适配ipad 以及手机端,这时候当然要告别刀耕火种时代啦(自己算rem),因为已经有成熟的工具啦,即px2rem(https://www.npmjs.com/package/px2rem) ... 
