不定项选择题 给出下面的代码:
   public class Parent{
   public int addValue(int a,int b){
   int s;
   s=a+b;
   return s;
   }
   }
   class Child extends Parent{
   }
   以下方法可以加入类Child中的是______。
   A.int addValue(int a,int b){//do something…}
   B.public void addValue(){//do something…}
   C.public int addValue(int a){//do something…}
   D.public int addValue(int a,int b)throws MyException{//do something…}
【正确答案】 B、C
【答案解析】此题涉及方法重载(overload)、方法重写(override)以及类派生时方法重写的规则。方法重载的规则是:①参数列表必须不同,完全可以是个数的不同,如果个数相同则参数类型的不同不能引起歧意,例如int和long,float和double就不能作为唯一的类型不同;②返回值可以不同,但是不能是重载时唯一的不同点(这点和C++中不同,C++中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类型和参数列表一样时才能说是重写,否则就是重载。Java中方法重写的一个重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。此题中答案A的错误就是重写的访问权限比被重写的方法的低,而B、C都属于重载,D的错误在于比被重写的方法抛弃了更多种类的异常。