Ruby继承应用经验分享
创始人
2024-06-15 22:41:30
0

Ruby语言作为一种编程语言,同样具有继承的功能。下面我们将会针对Ruby继承的一些相关知识对大家做一个详细的介绍。希望有所帮助。#t#

在日常生活中,我们对一切对象的分类都是有一定层次的.我们知道所有的猫都是哺乳动物,而所有的哺乳动物又都是动物.小型的类从更大的

类中继承它们的属性.如果一切的哺乳动物要呼吸,那么猫也要呼吸.

在Ruby里,我们可以这样表述Ruby继承这一概念:

  1. ruby> class Mammal   
  2. | def breathe   
  3. | print "inhale and exhale\n"   
  4. | end   
  5. | end   
  6. nil   
  7. ruby> class Cat   
  8. | def speak   
  9. | print "Meow\n"   
  10. | end   
  11. | end   
  12. nil  

 

虽然我们并未指明一只猫要怎样呼吸,但因为Cat是定义为Mammal的子类的(在OO术语里,较小的类叫子类,相比较大的类称父类),每一只猫都将继承来自于Mammal类的行为.因此从程序员的角度出发,猫天生就拥有呼吸这一能力;当我们加上speak方法后,我们的猫就能呼吸,也可以发声了.

  1. ruby> tama = Cat.new   
  2. #   
  3. ruby> tama.breathe   
  4. inhale and exhale   
  5. nil   
  6. ruby> tama.speak   
  7. Meow   
  8. nil   

 

Ruby继承也会遇到这样的情况:父类的某些属性不可以被某一特定的子类继承.虽然一般鸟类都会飞,但企鹅是鸟类中不会飞的一个子类.

  1. ruby> class Bird   
  2. | def preen   
  3. | print "I am cleaning 
    my feathers."   
  4. | end   
  5. | def fly   
  6. | print "I am flying."   
  7. | end   
  8. | end   
  9. nil   
  10. ruby> class Penguin
  11. | def fly   
  12. | fail "Sorry. I'd rather swim."   
  13. | end   
  14. | end   
  15. nil  

 

抛开脑尽力疲地为每一个新类定义属性,我们只需要新增或重定义子类和父类之间的区别.Ruby继承的这一用法有时也叫做特点编程(differential programming).这是面向对象编程的又一好处.

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...