资源描述:
《Java 2、重载与重写》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、重点题型:重载与重写5/5l总结1、重载:1)参数列表必须不同,个数的不同完全可以,如果个数相同则返回类型可以不同,但它不足以作为唯一的差异。2)只考虑参数列表不同就可以重载;例如a(inta,intb)和a(longa,intb)也算重载;2、重写:1)、覆盖方法的返回类型和参数列表一样必须与它所覆盖的方法相同。2)、覆盖方法不能比它所覆盖的方法访问性差3)、覆盖方法不能比它所覆盖的方法抛出更多的异常。3、构造函数不能被继承4、final防止方法重写;如:staticfinalvoidmethoda()
2、{}大----》小:public、protected、default、private修饰符同类同包子类通用性public[公共]是是是是protected[受保护]是是是default[缺省]是是private[私有]是l58.whichtwodeclaretionspreventtheoverridingofamethod?翻译:那两种声明防止方法重写?A.finalvoidmethoda(){}B.voidfinalmethoda(){}C.staticvoidmethoda(){}D.staticf
3、inalvoidmethoda(){}E.finalabstractvoidmethoda(){}答案:adlpublicclassParent{publicintaddValue(inta,intb){ints;s=a+b;returns;}}classChildextendsParent{重点题型:重载与重写5/5}WhichmethodscanbeaddedintoclassChild?A.intaddValue(inta,intb){//dosomething...}B.publicvoidadd
4、Value(){//dosomething...}C.publicintaddValue(inta){//dosomething...}D.publicintaddValue(inta,intb)throwsMyException{//dosomething...}答案:(bc)题目:哪些方法可以加入类Child中。此题涉及方法重载(overload),方法重写(override)以及类派生时方法重写的规则。方法重载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧
5、意,例如int和long,float和double就不能作为唯一的类型不同;二、返回值可以不同,但是不能是重载时唯一的不同点(这点和c++中不同,c++中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载,java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不
6、能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。此题中答案a的错误就是重写的访问权限比被重写的方法的低,而b,c都属于重载,d的错误在于比被重写的方法抛弃了更多种类的异常。lwhichmethod,placedatline6,willcauseacompilererror?1)classSuper{2)publicfloatgetNum(){return3.0f;}3)}4)5)publicclassSubextendsSuper{6)7)}whichmethod,placedatline6
7、,willcauseacompilererror?A.publicfloatgetNum(){return4.0f;}//重写B.publicvoidgetNum(){}//带有歧义的重载publicvoidgetNum(){}C.publicvoidgetNum(doubled){}//重载D.publicdoublegetNum(floatd){return4.0d;}//重载答案:BlpublicclassMethodOver{publicvoidsetVar(inta,intb,floatc){}
8、}whichoverloadthesetVar?重点题型:重载与重写5/5A.privatevoidsetVar(inta,floatc,intb){}B.protectedvoidsetVar(inta,intb,floatc){}C.publicintsetVar(inta,floatc,intb){returna;}D.publicintsetVar(inta,floatc){returna;}答案:a,c,d小心A答案