A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张学永 于 2012-11-14 09:15 编辑

毕老师讲的是功能相同,参数列表不同。貌似和返回值没关系?
下面这种写法,功能有的也不同,该如何定义呢?能否算是重载呢?
class MyTest{
   
    public int function(int a,int b){
        return a+b;
    }
    public int function(int a,int b,int c){
        return a+b+c;
    }
    public Double function(String a){
        return Double.parseDouble(a);
    }
    public void function(){
        System.out.println("hello");
    }
   
}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 鼓励一下 。

查看全部评分

10 个回复

正序浏览
陈军 中级黑马 2012-11-14 12:45:38
10#
本帖最后由 陈军 于 2012-11-14 12:48 编辑

你这个int型的简单。用一个可变参数就搞定了。

例子如下
public static int add(int...args){ }

这个方法表示接收int类型的可变参数。。个数可以是任意个数(包括0)

你的这个也叫重载,因为参数列表不一样。。
反正重载你记住一点: 名字相同,不同参数列表(包括类型和顺序)

和返回值没有任何关系。
回复 使用道具 举报
都是的。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。
重载只看方法名和方法参数的。
回复 使用道具 举报
刘腾 高级黑马 2012-11-14 10:47:41
8#
以上都属于重载。
重载很好理解:在同一个类中,允许一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
记住一点:重载跟返回值类型与修饰符无关
至于什么时候用重载也很好理解。
当定义的功能一样时,而参与运算的内容不同时,那么,就定义一个函数名称以说明其功能,方便阅读,而通过参数列表的不同来区分多个函数。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
是重载。重载和返回值没有关系。
重载:在同一个类中,允许出现一个以上的同名函数,只要他们的参数个数或参数类型不同即可。所以你在考虑是不是重载时,只要考虑他们之间的参数个数或参数类型是不是就可以了。
函数的格式:修饰符   返回值类型   函数名(参数类型  形式参数1   参数类型  形式参数2.......)

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主所列的都是重载
只要理解了重载的定义(在一个类中,可以允许存在多个同名函数,只要它们的参数个数或者参数类型不同即可),
就容易判断了
回复 使用道具 举报
楼上的那个例子不能同时存在一个类中,我一直以为参数类表没有位置问题,原来参数类表也有前后顺序,希望有同样想法的同学注意了
回复 使用道具 举报
方法的重载就是方法名称相同,但参数的类型和参数的个数不同,上面的几位同学说的比较清楚了,我这想说的是,方法的返回类型不同,但是参数类型和个数相同不是重载,比如:
public static float add(int x,int y)
{
}

public static int add (int x,int y)
{
}

这两个方法不叫重载,也不可能编译通过,希望对你有所帮助

点评

public static float add(int x,int y) { } public static int add (int x,int y) { } 这两个函数不可能同时存在于一个类中,因为他们的函数名是相同的,但是返回...  发表于 2012-11-14 10:10
回复 使用道具 举报
1.以上几个算是重载,再是在定义函数名时有些笼统。
2.函数重载的定义:在同一类中允许存在一个以上的同名函数,只是他们的参数列表不同(即参数个数和参数类型不同)。
3.什么时候用重载?
  当定义的功能相同时,但参与运算的位置内容不同时,就定义一个函数名称表示其功能,方便阅读,而通过参数列表的不同来区分不同函数。
4.这只是本人的理解,希望可以帮到楼主。
  

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
算是重载的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马