一个阶段测试题
7、读以下程序:
1)class BaseClass{  
 2)    private float x=1.0f;  
 3)    private float getVar(){return x;}  
   4)}  
   5)class SubClass extends BaseClass{  
 6)    private float x=2.0f;  
   7)   //insert code  
   8)}  
   以下哪些重写了getVar():(  )
   A、float getVar(){  
   B、publifloat getVar(){
   C、publidouble getVar(){
   D、protectedfloat getVar(){
答案说是  ABD  我怎么不解啊
------解决方案--------------------重写是子类的方法覆盖父类的方法,要求方法名和参数、返回值类型 都相同 ,重写的封装等级必须大于父类等级
------解决方案--------------------
------解决方案--------------------重写的主要特点是:
1)方法名必须与被重写方法一致
2)方法参数列表必须与被重写方法一致
3)若是基本数据类型,则必须要相同;若是引用类型,则重写的方法的返回值类型或者一样,或者是被重写方法的返回值类型的子类型
4)重写的方法不能降低原方法的"可见度"
5)不能抛出新的异常或者"更宽的"异常
6)被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖答案费解
------解决方案--------------------