java—重写java方法的重写一个疑问

关于java重写的问题

将下列哪个代码放入程序中标注的【代码】处将导致编译错误答案是B(PS:谁能告诉我这是怎么回事)

答案是bA没问题,是函数的重写C没问题,是一个B类的特有函数,也鈳以算是getNum()java方法的重写重载D,没问题,同CB编译错误,因为看参数列表和父类的getNum方法形成了重写,但是返回值类型不同,造成了调用的不确定性(就是虚拟機需要调用getNum时,只看参数列表,所以,无法判断该调用哪一个),所以编译失败

答案是B,D。B既不是重写也不是重载,重写需要一样的返回值类型和参数列表,访问修饰符的限制一定要大于被重写java方法的重写访问修饰符(public>protected>default>private);重载:必须具有不同的参数列表;  可以有不同的返回类型只要参数列表不同就可以了;  可以有不同的访问修饰符;把其看做是重载,那么在java中是不能以返回值来区分重载java方法的重写,所以b不对.D定义返回类型为float,但实际返回的是double类型

答案应该是d吧返回类型不一致,需要强转;这种最好自己敲一下

打开App查看更多内容

发生在有继承关系的两个类之间 孓类类型当中.要求:完全符合《进化论》

修饰符 返回类型 方法名字(参数列表) 异常声明{}

头 | 躯干(方法签名) | 尾巴

不能更小 必须相同 不能更大

访问控制权限修饰符不能更加严格

返回类型+方法名+参数列表 必须相同

你对这个回答的评价是

方法重写,就是一个类继续了另一个类的时候對父类的方法重新实现!

这个重新实现,就是使用相同的方法名相同的参数列表和返回类型,访问控制符使用和父类相同或者更宽

你對这个回答的评价是?



采纳数:0 获赞数:6 LV1

方法重写:发生在有继承关系的两个类之间

方法覆盖:发生在同一类里面

你对这个回答的评价是

我要回帖

更多关于 java方法的重写 的文章

 

随机推荐