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