JK_point
2017-05-24 03:45
采纳率: 100%
浏览 8.9k
已采纳

java方法的重载,重载可以返回值类型不同吗

是不是只要两个方法的返回值类型不同就不构成重载了?
如题
给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。
public class Test{
public void cal(int x, int y, int z) {}

}
A. public int cal(int x, int y, float z){ return 0; }
B. //public int cal(int x, int y, int z){ return 0; }
C. public void cal(int x, int z){ }
D. //public void cal(int z, int y, int x){ }
C我知道对的,就想知道,A为什么错了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 筑梦之路 2017-05-24 04:05
    已采纳
    (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
    

    重载Overloading是一个类中多态性的一种表现。

    (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
    

    调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

    (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准
    
    点赞 3 打赏 评论
  • mingyu_star 2017-05-24 03:59

    方法重载:方法名相同;参数列表不同;与返回值无关。
    此处z的类型是float,返回类型应该是float吧。。。。

    点赞 2 打赏 评论
  • 大道之简 2017-05-24 04:20

    返回值得类型不同不构成重载的,A中的参数中有float的,而返回值得类型的int型,应该是float型的吧,有个类型提升的吧

    点赞 2 打赏 评论
  • 筑梦之路 2017-05-24 03:49

    Java方法的重载是Java面向对象多态特性在同一个类中的表现,方法的重载与参数列表、参数个数有关,与访问修饰符、返回值没有关系!

    点赞 打赏 评论
  • 襄阳dou腐面 2017-05-25 03:05

    方法重载:方法名相同;参数列表不同;与返回值无关。
    此处z的类型是float,返回类型应该是float吧

    点赞 打赏 评论
  • 双木有兮木有辛 2017-05-26 09:43

    重载一个方法的原则是 至少 编译器要能分辨出你要调用哪个方法。

    如果你参数不同,你传什么参数,编译器能找到对应的那个方法,那就没问题,可如果你参数都一样

    试想,你怎么知道应该调哪个方法来执行这些入参呢?

    点赞 打赏 评论

相关推荐 更多相似问题