Lua --面向对象之多态
来源:互联网 发布:白噪音app 知乎 编辑:程序博客网 时间:2024/05/16 01:52
Lua中的多态和我们平时接触的java,C#中的多态还是有些相似的
只不过看起来没有我们接触的java和C#的代码看起来紧凑,整齐,下面是根据上一个案例进行改写的多态。
--多态-- Meta classShape = {area = 0}-- 基础类方法 newfunction Shape:new (o) o = o or {} setmetatable(o, self) self.__index = self return oendfunction Shape:getArea() self.area = 0;end-- 基础类方法 printAreafunction Shape:printArea () print("面积为 ",self.area)endSquare = Shape:new()-- Derived class method newfunction Square:new (o,side) o = o or Shape:new(o,side) setmetatable(o, self) self.__index = self self.side = side or 0 return oend--重载function Shape:getArea() self.area = self.side * self.side;endfunction Shape:getArea(side) self.area = side * side;endmySquare = Square:new()mySquare:getArea(200)mySquare:printArea()Rectangle = Shape:new()-- Derived class method newfunction Rectangle:new (o,length,breadth) o = o or Shape:new(o,side) setmetatable(o, self) self.__index = self self.length = length or 0 self.breadth = breadth or 0 self.area = length*breadth; return oend--重写基类的方法function Rectangle:getArea() self.area = self.length*self.breadth;end--和上一个求面积的方法形成多态function Rectangle:getArea(length,breadth) self.area = length* breadth;endmyRectangle = Rectangle:new(nil,20,30)myRectangle:getArea(30,40)myRectangle:printArea()
0 0
- Lua --面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态
- 面向对象之多态学习
- php面向对象之多态
- JAVA-面向对象之多态
- C#面向对象之多态
- Java面向对象之多态
- 温故而知新
- leetcode 380.Insert Delete GetRandom O(1)
- 【Android】记录Android MediaPlayer的两个bug
- Java内部类
- C++ 简易加减乘除运算(九度OJ 1116)
- Lua --面向对象之多态
- 多线程共享资源
- Day24、错误处理、使用C语言操作环境变量、进程映射、栈的原理(全局、静态变量)
- AndroidStudion快捷键
- 周易正易 (2001刊行本影印_易學原理總論)
- 关于FileInputStream
- 【PAT乙级真题及训练集】1001. 害死人不偿命的(3n+1)猜想 (15)
- PAT 1009. Product of Polynomials (25)(多项式乘法)(待修改)
- 网络请求框架(二):volley使用之自定义请求