Ruby-模块和类
2024-08-27 20:29:20
首先看下他们的关系
- irb(main):100:0> String.class
- => Class
- irb(main):101:0> String.class.superclass
- => Module
- irb(main):102:0> String.class.superclass.superclass
- => Object
class < Module < Object
1、类 只能单继承,但是可以包含多个模块
module AA
def AA.prints1(str)
print "A:"+str
end
end
module BB
def BB.prints2(str)
print "B:"+str
end
end
class CC
include AA
AA.prints1("aa")
include BB
BB.prints2("bb")
end
2、模块 就和c#接口类似,包含一些公共接口方法,无法实例化
类调用模块的两种方式
A.rb 在方法前加 模块名.方法名 (AA.prints1) , 在其引用类中就可以直接调用 AA.prints1
module AA
def AA.prints1(str)
print "A:"+str
end
end
B.rb 如果没有加模块名则需要在其引用类中添加 include BB把方法包含进引用类中,相当于继承了方法,然后就可以直接调用了prints2
module BB
def prints2(str)
print "B:"+str
end
end
最新文章
- 第9章 Shell基础(4)_Bash的运算符及环境变量配置文件
- 【腾讯Bugly干货分享】微信读书iOS性能优化
- linux 搭建SVN服务器,为多个项目分别建立版本库并单独配置权限
- 在GitHub上建立个人主页的方法(转载)
- sprint2(第七天)
- English article1
- 005windows与Linux文件共享
- c# 组元(Tuple)
- 19、XHTML
- qq昵称由fly改为思诺
- PHP 安装使用 gearman
- ionic2新手入门整理,搭建环境,创建demo,打包apk,热更新,优化启动慢等避坑详解
- FineUIPro控件库深度解析
- SpringBoot 配置定时任务
- CodeForces632E 神奇的多重背包
- NodeJS 学习记录
- Centos6.8-hadoop-2.7.2 64 bit源码编译(伪分布-5大守护进程在本机上)
- Maven profile 打包分环境加载不同的资源文件
- How to Create a Framework for iOS[RE]
- weblogic升级之ddconverter
热门文章
- 验证码javaweb
- C++快速入门系列教程
- 线程,yield让出cpu调度
- Java面向对象㈡ -- 继承与多态
- 解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况
- 【转】去掉Sqlite3 数据库中的前后回车换行符(newline)
- 数据库使用--MyISAM InnoDB 区别
- 【JAVA】【Eclipse】出现This element neither has attached source nor attached Javadoc...的解决方法
- JS面向对象的程序设计
- cursor 鼠标样式——属性