黑马程序员技术交流社区

标题: 求解释 [打印本页]

作者: 李红志    时间: 2013-3-5 20:53
标题: 求解释
我创建了两个方法,他们的特征如下
int total(int arg1,int arg2, int arg3)  {...}
float total (int arg1,int arg2, int arg3)  {...}
当我编译包含这些方法的类时,Java编译器报错,但他们的特征标并不同,哪里有问题
作者: 张洪慊    时间: 2013-3-5 21:05
本帖最后由 张洪慊 于 2013-3-5 21:09 编辑

如果你想用重载的话.
①参数的类型和个数以及 参数类型顺序 不同
参数类型顺序例如:
int total(int a,double b)//int double
int total(double a,int b)//double int
与返回值类型无关
你相当于定义两个重名函数
作者: 杨杨    时间: 2013-3-5 21:13
可以听这样改
  1. public class Test
  2. {
  3.         public static void main(String[] args) {
  4.                
  5.         }
  6.         int total(int arg1,int arg2, int arg3)  {
  7.                 return 1;
  8.                 }
  9.         int total (int arg1,float arg2, int arg3)  {
  10.                 return 2;
  11.         }

  12. }
复制代码
重载跟 返回的方法的类型无关
作者: 明锦添    时间: 2013-3-5 21:27
上面的哥们说的很对,重载只看函数名和参数列表,函数名相同,参数列表不同才叫重载,你现在是定义了两个同名同参数的函数
作者: HM王琦    时间: 2013-3-5 22:35
上面说的很详细了
作者: 夏晓彤    时间: 2013-3-5 22:59
附上图一张

SR4`JANN(KHB4Q(B[$4L@9M.jpg (56.37 KB, 下载次数: 8)

SR4`JANN(KHB4Q(B[$4L@9M.jpg

作者: amen0205    时间: 2013-3-5 23:48
你的两个函数函数名还有参数类型和个数完全一样, 这样不是重载,是重复  所以报错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2