rudy 重载方法 详解_ruby专题教程-查字典教程网
rudy 重载方法 详解
rudy 重载方法 详解
发布时间:2016-12-28 来源:查字典编辑
摘要:在子类里,我们可以通过重载父类方法来改变实体的行为.ruby>classHuman|defidentify|print"I'maperson...

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

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新ruby专题学习
    热门ruby专题学习
    脚本专栏子分类