Ruby重载知识讲解

Ruby语言作为一种新兴的编程语言,广大编程语言都对其保佑非常大的好奇心。在这篇文章中我们将会认识到Ruby重载的一些知识。#t#

创新互联公司是一家专注于网站建设、网站设计与策划设计,彭州网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:彭州等地区。彭州做网站价格咨询:18980820575

在子类里,我们可以通过Ruby重载父类方法来改变实体的行为.

  1. ruby> class Human 
  2. | def identify 
  3. | print "I'm a person.\n" 
  4. | end 
  5. | def train_toll(age) 
  6. | if age < 12 
  7. | print "Reduced fare.\n"; 
  8. | else 
  9. | print "Normal fare.\n"; 
  10. | end 
  11. | end 
  12. | end 
  13. nil 
  14. ruby> Human.new.identify 
  15. I'm a person. 
  16. nil 
  17. ruby> class Student1 
  18. | def identify 
  19. | print "I'm a student.\n" 
  20. | end 
  21. | end 
  22. nil 
  23. ruby> Student1.new.identify 
  24. I'm a student. 
  25. nil 

如果我们只是想增强父类的 identify 方法而不是完全地替代它,就可以用 super进行Ruby重载.

 
 
 
  1. ruby> class Student2
  2. | def identify 
  3. | super 
  4. | print "I'm a student too.\n" 
  5. | end 
  6. | end 
  7. nil 
  8. ruby> Student2.new.identify 
  9. I'm a human. 
  10. I'm a student too. 
  11. nil 

super 也可以让我们向原有的方法传递参数.这里有时会有两种类型的人...

 
 
 
  1. ruby> class Dishonest
  2. | def train_toll(age) 
  3. | super(11) # we want a 
    cheap fare. 
  4. | end 
  5. | end 
  6. nil 
  7. ruby> Dishonest.new.train_toll(25) 
  8. Reduced fare. 
  9. nil 
  10. ruby> class Honest
  11. | def train_toll(age) 
  12. | super(age) # pass the 
    argument we were given 
  13. | end 
  14. | end 
  15. nil 
  16. ruby> Honest.new.train_toll(25) 
  17. Normal fare. 
  18. nil 

以上就是对Ruby重载的相关知识介绍。

文章名称:Ruby重载知识讲解
浏览地址:http://www.csdahua.cn/qtweb/news13/399613.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网