public class Super {
public float getNum(){
return 3.0f;
}
}
public class Sub extends Super{
代码A
}
代码A处写下列选项哪个会编译错误
A public float getNum(){
return 4.0f;
}
B public void getNum(){}
C public void getNum(double d){}
D public double getNum(float d){
return 4.0d;
}
------解决思路----------------------
肯定是B
原因:
A 属于重写 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型) 只不过是重写了函数体。
C和D 属于重载 重载的函数的形式参数(指参数的个数、类型或者顺序)必须不同 所以C和D重载了父类方法,重载跟函数的返回值类型无关。
B 完全错误,产生冲突,如果 用子类定义对象 调用getNum()方法时 系统就蒙了 不知道是父类还是子类了