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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 至尊宝的温柔   /  2015-10-21 21:38  /  15099 人查看  /  62 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

是啊,问这个问题说明你还不太了解重载是怎么一回事啊。。
比如下面是String的几个构造函数,他们函数名都相同,但是为啥能同时存在呢?是因为他们有不同的参数列表,这样他们就重载了。
String()
String(byte[] bytes)
String(byte[] bytes, Charset charset)
String(byte[] ascii, int hibyte)
String(byte[] bytes, int offset, int length)
String(byte[] bytes, int offset, int length, Charset charset)
总结一下,函数名相同,参数列表不同的函数,就重载。调用的时候,你的参数列表是哪个就调用那个函数。注意的是这里不看返回值。函数名和参数列表都相同而返回值不同的函数是不能在一个类中同时存在的!
回复 使用道具 举报
方法重载是一种概念,就是一个类里面存在多个同名方法,但是为了区分他们,每个方法的参数列表是不同的。参数列表不同表现在两个方面,一个是参数的数据类型不同,另一个就是参数的数量不同。最典型的例子就是类的构造器,一个类可以存在多个构造器,但每个构造器的参数列表都是不同的。所以你提问的是否是要有两个方法,那肯定是的,不然怎样表现出其中“重”的概念的呢。与之对应的还有另外一种概念,就是方法的覆写,子类继承父类,可以对继承过来的方法的方法体进行重写,来改善这个方法的功能。
回复 使用道具 举报
方法重载在同一个类中,方法名相同,参数列表不同!!!注意这里说的参数列表不同,因为单个的方法只有一个参数列表无法形成参数列表不同,所以需要两个以上的方法才能形成方法重载
回复 使用道具 举报
任珅 中级黑马 2015-10-24 19:33:46
24#
肯定的啊,需要用到同一个方法名的时候,当时参数又不相同的情况下,才会出现方法重载的情况。这个时候,方法名都一样,通过方法里定义的参数不同以做区分
回复 使用道具 举报
重载,在一个类中相同名字的方法,通过不同的参数来体现。
回复 使用道具 举报
可以存在同名的方法,但是参数类型和参数不能相同,这样的关系体现了Java中的多态(重载),举例如下:
package com.fatkun;
/**
* Overloading(重载,过载)
* 方法名相同,参数类型不同或者参数类型顺序不同
* 返回值,访问修饰符,异常可以不一样
* @author fatkun
*
*/
public class Overloading {

public int test(){
System.out.println("test1");
return 1;
}

public void test(int a){
System.out.println("test2");
}       

//以下两个参数类型顺序不同
public String test(int a,String s){
System.out.println("test3");
return "returntest3";
}       

public String test(String s,int a){
System.out.println("test4");
return "returntest4";
}       

public static void main(String[] args){
Overloading o = new Overloading();
System.out.println(o.test());
o.test(1);
System.out.println(o.test(1,"test3"));
System.out.println(o.test("test4",1));
}
回复 使用道具 举报
嗯嗯,方法名相同,参数列表不同,与返回值无关,方法重载
回复 使用道具 举报
方法重载,是在已经有一个方法的前提下再写一个,方法名相同,元素个数、类型、排列顺序不同才是方法重载,必须要重写一个。所以说方法重载在原有方法的基础上写一个同名但是元素类型不同的也可以称为方法重载
回复 使用道具 举报
本帖最后由 hainanlxk 于 2015-10-26 16:13 编辑

重载就是同方法名称需要不同的参数来达到一定的功能,重载不一定是必须的。比如:zuofan(String 大米){
   .......做饭;
}
zuofan(String 大米,int 5个人){
   ......做5个人的饭;
}
这样能明白我的意思吧。
回复 使用道具 举报
方法重载是java的一种机制,一般跟方法的覆写在一起比较学习。方法的重载是指一个类中存在多个重名方法,但是方法的参数列表不同。参数的列表不同表现在两个方面,一个是参数的个数不同,另一个就是参数的数据类型不同。
回复 使用道具 举报
HiGodl 中级黑马 2015-10-27 01:37:00
31#
当然要,重载的定义就是建立在多个同名但参数不同的方法基础之上的,如果只有一个方法的话,何来重载之说
回复 使用道具 举报
嗯嗯,谢谢了,
回复 使用道具 举报
同一个类中,方法名一样参,数列表不一样构成方法重载,你至少要有两个方法吧...
回复 使用道具 举报
方法重载是指,方法名相同,参数不同,与返回值无关。只要符合这个标准就是方法重载。如果写一个方法,当前类或子类中找不到与之同名的方法就谈不上重载
回复 使用道具 举报
重载,,重就值得至少还要有一个
回复 使用道具 举报
guoguo291 来自手机 中级黑马 2015-10-28 13:09:17
36#
方法重载是之指在同一个类中,两个或多个方法的名字相同,但是方法的参数列表不同(参数的个数或者参数数据类型,不同类型参数的顺序不同)就是方法重载,与方法的返回值类型无关
回复 使用道具 举报
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
写两个以上的方法,才能看出是重载啊。{:2_30:}
回复 使用道具 举报
当然需要了。肯定需要了啊
回复 使用道具 举报
当然需要重载了,
回复 使用道具 举报
是的  必须要两个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马