时间:2021-05-22
在子类里,我们可以通过重载父类方法来改变实体的行为.
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邮箱联系删除。
详解Java使用super和this来重载构造方法实例代码://父类classanotherPerson{Stringname="";Stringage="";
java中的方法重载和方法重写有很多区别。下面给出了方法重载和方法覆盖之间的差异列表:编号方法重载方法重写1方法重载用于提高程序的可读性。方法重写用于提供已经由
与函数一样,方法也存在重载,其重载的方式与函数一致。那么作为构造器的特殊方法,是否也存在重载呢?答案是肯定的。一、构造器重载概念Swift中函数重载的条件也适用
一、重载1、重载示意重载(Overload)是重新加载的意思,指的是同一个类中同名,但是参数列表不同的方法组(返回值不能区别函数是否重载),重载没有关键字。通俗
C++中函数重载实例详解函数重载:1、具有相同的名称,执行基本相同的操作,但是使用不同的参数列表。2、函数具有多态性。3、编译器通过调用时参数的个数和类型确定调