Lua面向对象 --- 多态
多态,简单的理解就是事物的多种形态。专业的术语说就是:同一个实现接口,使用不同的实例而执行不同的操作。
工程结构:

BaseRoom.lua:
BaseRoom = {}
function BaseRoom:new()
self = {}
setmetatable(self,BaseRoom)
BaseRoom.__index = BaseRoom
return self
end
--对该方法的调用体现了多态
function BaseRoom:Size()
return
end
function BaseRoom:GetSize()
return self:Size()*
end
return BaseRoom
MarryRoom.lua:
require "BaseRoom"
MarryRoom = {}
function MarryRoom:new()
setmetatable(MarryRoom, BaseRoom)
BaseRoom.__index = BaseRoom
self = {}
setmetatable(self,MarryRoom)
MarryRoom.__index = MarryRoom
return self
end
--对该方法的调用提现了多态
function MarryRoom:Size()
return
end
return MarryRoom
StarRoom.lua:
require "BaseRoom"
StarRoom = {}
function StarRoom:new()
setmetatable(StarRoom,BaseRoom)
BaseRoom.__index = BaseRoom
self = {}
setmetatable(self,StarRoom)
StarRoom.__index = StarRoom
return self
end
--对该方法的调用体现了多态
function StarRoom:Size()
return
end
return StarRoom
码云上的相关工程:https://gitee.com/luguoshuai/LearnLua
Lua面向对象 --- 多态的更多相关文章
- lua面向对象实现(实例化对象、继承、多态、多继承、单例模式)
lua面向对象实现: 一个类就像是一个创建对象的模具.有些面向对象语言提供了类的概念,在这些语言中每个对象都是某个特定类的实例.lua则没有类的概念,每个对象只能自定义行为和形态.不过,要在lua中模 ...
- Lua面向对象----类、继承、多继承、单例的实现
(本文转载)学习之用,侵权立删! 原文地址 http://blog.csdn.net/y_23k_bug/article/details/19965877?utm_source=tuicool&a ...
- OC面向对象—多态
OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. ...
- OC面向对象—多态
OC面向对象—多态 一.基本概念 多态是基于继承的基础之上的,多态可以使得父类的指针指向子类的对象.如果函数或参数中使用的是父类类型,可以传入父类.子类对象,但是父类类型的变量不能直接调用子类特有的方 ...
- 李洪强iOS开发之OC面向对象—多态
OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. ...
- 【基础】Equal方法、面向对象-多态-继承-封装
package Test; public class L3_1 { public static void main(String[] args) { C c1=new C(100); C c2=new ...
- Lua面向对象之三:其它一些尝试
1.尝试一:子类对象调用被覆盖了的父类函数 根据元表设置流程,我们只有将父类元表找到就能调用父类的方法了 ①在子类Circle中增加一个调用父类方法的函数 --调用父类被子类覆盖了的name方法 fu ...
- Lua面向对象之二:类继承
1.类继承 ①代码 Sharp = { } --① 父类 function Sharp:new() local new_sharp = { } self.__index = self --②,self ...
- Lua面向对象之一:简单例子
1.Lua面向对象实现步骤 ①创建一个全局表(称之为元表) ②设置这个元表的__index值(值通常为元表自己,这样就能通过__index查找到对应的属性和方法) __index 赋值其实是一个fun ...
随机推荐
- 在outlook中发邮件判断邮件发送成功的方法
早上给企业发了求职邮件,但是发送的时候,自己发现附件比较大,因为之前比较少使用这个工具来发邮件,所以发送之后没有提醒成功与否,求职心切,内心变得比较紧张. 所以查了查方法,发现了以下解决方案,现备注下 ...
- ios 透过上层视图点击相应下方视图的点击事件
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ UIView *hitView = [super hitTest:point ...
- Python: 列表,元组,字典的区别
Python中有3种内建的数据结构:列表,元组和字典 1.列表 list是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目.列表中项目应该包括在方括号中,这样python就知道是在指明 ...
- Linux基础命令---split
split 将一个大文件切割成较小的文件,默认情况下每1000行就会切割一次.分割后的文件,默认以xaa.xab.xac等命名.用户亦可以指定名字的前缀,例如指定前缀test,那么分割后的文件是tes ...
- 利用arcgis处理遥感栅格数据,得到省平均值数据
1.准备全国省级行政区数据,需要有省级行政区信息,如下所示: 2.生成渔网数据,操作完成会生成一个面数据和一个点数据,我们主要用点数据进行后面的操作. 3.提取栅格数据的值到渔网点数据中. 4.将区域 ...
- 2016NOI冬令营day2
早上起来发现头不痛了(还是咳) : | 上午先讲自然语言处理!完全不考!完全不涉及!一开始挺有兴趣,后面就完全听不懂了 : | 后来又讲了几道IOI题目(自称只是op),然后就是 从信息熵到数据压缩 ...
- C/C++之全局、static对象/变量的初始化问题
关于全局.static对象/变量的初始化问题 1. 全局变量.static变量的初始化时机:main()函数执行之前(或者说main中第一个用户语句执行之前). 2. 初始化顺序. 1)全局对象.外部 ...
- CPU负载过高异常排查实践与总结
昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现咱们的业务系统并不是一个高并 ...
- Python入门之字符编码
一.字节编码的基础知识 一.计算机基础知识 #1 我们的程序都是运行在特定的操作系统内,例如window,linux,mac等等#2 运行应用程序,需要要操作系统发出请求,我们双击运行的时候会向操作系 ...
- 轻量级文本标记语言-Markdown
Markdown简介 接触过github的都知道,在发布项目的时候可以建立一个说明文件README.md,这个md文件就是Markdown文本编辑语言的文件. Markdown 是一种轻量级标记语言, ...