网站首页 网站建设 IT知识 IT知识教程 rudy 重载方法 详解

rudy 重载方法 详解

2021-05-22 21:21:00
在子类里,我们可以通过重载父类方法来改变实体的行为.

ruby>classHuman
|defidentify
|print"I'maperson.\n"
|end
|deftrain_toll(age)
|ifage<12
|print"Reducedfare.\n";
|else
|print"Normalfare.\n";
|end
|end
|end
nil
ruby>Human.new.identify
I'maperson.
nil
ruby>classStudent1<Human
|defidentify
|print"I'mastudent.\n"
|end
|end
nil
ruby>Student1.new.identify
I'mastudent.
nil


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

ruby>classStudent2<Human
|defidentify
|super
|print"I'mastudenttoo.\n"
|end
|end
nil
ruby>Student2.new.identify
I'mahuman.
I'mastudenttoo.
nil


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

ruby>classDishonest<Human
|deftrain_toll(age)
|super(11)#wewantacheapfare.
|end
|end
nil
ruby>Dishonest.new.train_toll(25)
Reducedfare.
nil

ruby>classHonest<Human
|deftrain_toll(age)
|super(age)#passtheargumentweweregiven
|end
|end
nil
ruby>Honest.new.train_toll(25)
Normalfare.
nil

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。 如涉及版权问题,请提交至online#300.cn邮箱联系删除。

以上产品还未完全满足我的所有需求,在下方提交我的专属需求
我的专属需求:
*手机号:
*验证码:
img
咨询报价
现在咨询
img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP