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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 十甫寸 中级黑马   /  2013-7-23 23:26  /  1378 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 十甫寸 于 2013-7-25 10:38 编辑

1.什么是重载?2.重载的功能是什么?
主要想问第二个问题,希望可以写的清楚些!3Q!

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

6 个回复

正序浏览
函数的重载
当定义的功能相同时,参与运算的未知内容不同时定义一个同名函数,
以表示其相同的功能,方便阅读;而通过不同的参数列表来区分多个同名函数。

class FunctionOverload
{
        public static void main(String[] args)
        {
               
                System.out.println(getSum(4,5));
                System.out.println(getSum(4,5,6));
        }
        public static int getSum(int x,int y)
        {
                return x+y;
        }
        public static int getSum(int x,int y,int z)
                 //注意此时函数名和上一函数的名字是一样的但是参数列表不同(参数类型,参数个数),此时的参数的个数为三个,又因为此函数同样需要return x+y功能顾定义该同名函数,
           //并可调用上一函数的return x+y功能
        {
                //return x+y+z;
                return getSum(x,y)+z;//调用同名函数功能
        }
}
回复 使用道具 举报
重载特点:与返回值类型无关,只和参数列表有关。
重载好处:方便阅读,优化了程序设计。

什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同时,就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
回复 使用道具 举报
就是在同一个作用域里,具有相同函数名,不同参数个数,不同参数类型的多个函数,这样的就称为重载
由于重载可以在同一个类中定义功能类似的函数,这给程序员管理类的相似函数提供了极大的方便。例如,在一个定义圆的类中,需要设定圆心和半径来确定一个圆对象,程序员不需要设定setRadius(float r)和SetPoint(float x,float y)两个不同名函数,而只需要设定一个CSetCicle函数名就够了。在这个简单的例子中重载并没有明显的优势,可是当一个类中相似功能函数有几十、上百个的时候,重载的优势就显现出来了,这时程序员不需要去记这么繁多的函数名,可以把更多的精力放在程序本身上。重载的方法只属于子类。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
public class Num{
     public Num(){}
     public Num(int a){}
     public Num(int a int b){}
     public Num(String a int b){}
}
这些都属于方法的重载;

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或类型不同就行。
当定义一个功能相同,但参与运算的未知内容不同,那么,这是就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
重载简单说就是同一个函数名字具有了不同的功能
重载功能就是,只写一个方法,根据所传参数不同去调用相对的功能。

评分

参与人数 1技术分 +1 收起 理由
特殊服务 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马