Ruby重载知识讲解

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

在子类里,我们可以通过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<Human   
  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重载.

ruby> class Student2<Human   


| def identify   


| super   


| print "I'm a student too.\n"   


| end   


| end   


nil   



ruby> Student2.new.identify   



I'm a human.   


I'm a student too.   


nil   

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

相关推荐