一道java选择题,新手求指教
将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?A.publicfloatgetNum(){return4.0f;}B.publicvoidge...
将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?
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; }
class A{
public float getNum(){
return 3.0f; }
}
public class Bextends A{
[代码]
}
答案是选B 为什么C对呢 展开
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; }
class A{
public float getNum(){
return 3.0f; }
}
public class Bextends A{
[代码]
}
答案是选B 为什么C对呢 展开
5个回答
展开全部
C带了参数,默认不是一个方法了,对于继承,要么重写相同方法(返回值类型必须一致),要么重载方法。AB是重写,CD是重载,但是B返回值类型不一致,所以B错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lyx4228716是对的
如果方法的签名不同,那就是方法重载。方法的签名一致就是形参的个数,类型,顺序必须一致。
如果方法的签名相同,那就是重写/覆盖原有的方法,要求返回类型一致或者是原有类型的子类
A是重写覆盖
B是错误的,因为返回类型不兼容
C D都是重载
如果方法的签名不同,那就是方法重载。方法的签名一致就是形参的个数,类型,顺序必须一致。
如果方法的签名相同,那就是重写/覆盖原有的方法,要求返回类型一致或者是原有类型的子类
A是重写覆盖
B是错误的,因为返回类型不兼容
C D都是重载
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你觉得c为什么不对呢?c的函数返回类型为void,则代表函数体不需要返回任何东西,那函数体就允许为空了
追问
那么B错哪了 为什么加个参数double d 就对了
追答
B的写法没有错,但放到b类里,而b类继承了a类,a类中已经有一个和B答案同名且无参的函数了,这样就冲突了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B继承A实现的是他的方法,是要有返回值的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |