建站极客
脚本专栏 ruby专题 正文
rudy 继承 概念
所属分类:
脚本专栏 / ruby专题
阅读数:
1742
收藏 0
赞 0
分享
在日常生活中,我们对一切对象的分类都是有一定层次的.我们知道所有的猫都是哺乳动物,而所有的哺乳动物又都是动物.小型的类从更大的 类中继承它们的属性.如果一切的哺乳动物要呼吸,那么猫也要呼吸. 在Ruby里,我们可以这样表述这一概念: ruby> class Mammal | def breathe | print "inhale and exhale\n" | end | end nil ruby> class Cat<Mammal | def speak | print "Meow\n" | end | end nil 虽然我们并未指明一只猫要怎样呼吸,但因为Cat是定义为Mammal的子类的(在OO术语里,较小的类叫子类,相比较大的类称父类),每一只猫都将继承来自于Mammal类的行为.因此从程序员的角度出发,猫天生就拥有呼吸这一能力;当我们加上speak方法后,我们的猫就能呼吸,也可以发声了. ruby> tama = Cat.new #<Cat:0xbd80e8> ruby> tama.breathe inhale and exhale nil ruby> tama.speak Meow nil 也会遇到这样的情况:父类的某些属性不可以被某一特定的子类继承.虽然一般鸟类都会飞,但企鹅是鸟类中不会飞的一个子类. ruby> class Bird | def preen | print "I am cleaning my feathers." | end | def fly | print "I am flying." | end | end nil ruby> class Penguin<Bird | def fly | fail "Sorry. I'd rather swim." | end | end nil 抛开脑尽力疲地为每一个新类定义属性,我们只需要新增或重定义子类和父类之间的区别.继承的这一用法有时也叫做特点编程(differential programming).这是面向对象编程的又一好处.
Ruby 魔法 学习笔记之一 Ruby的许多动态特性,让Ruby具有很多魔法,这个魔法足以让你来定制你自己的语言DSL, Rails就是Ruby在Web的DSL.
评论 0
收藏 0
赞 0
分享
Ruby self在不同环境的含义 Ruby的self在不同的环境中有不同的含义,这点和java的this不同,原因是java实际上只有一种环境--在class的实例方法定义中使用,代表访问这个方法参数自动传进的那个对象。
评论 0
收藏 0
赞 0
分享
ruby 程序的执行顺序 ruby程序的执行是顺序执行的,他是从脚本的第一行执行到最后一行,但是实际执行顺序是
评论 0
收藏 0
赞 0
分享
ruby 标准类型总结 诠释分析了ruby的标准类型,学习ruby的朋友,需要了解和掌握的。
评论 0
收藏 0
赞 0
分享
ruby 去掉文件里重复的行 以前合并后台字典时,有重复的都是用vbs去,最近又看了一天的ruby,想起来写一下,没想到代码如此精简
评论 0
收藏 0
赞 0
分享
查看更多