黑马程序员技术交流社区

标题: 关于重载 [打印本页]

作者: lovecx24    时间: 2013-11-30 22:23
标题: 关于重载
我知道重载的依据是参数列表不同
  1. public class Test3 {
  2.         public void sop(){
  3.                 System.out.println("...");
  4.         }
  5.        //方法1
  6.         public void sop(String name){
  7.                 System.out.println(name);
  8.         }
  9.         //方法2
  10.         public String sop(int id){
  11.                 String s="abc";
  12.                 return s;
  13.         }

  14. }
复制代码

请问方法1和方法2还算是重载吗?

作者: 王东旭    时间: 2013-11-30 22:34
是重载,重载不考虑返回值类型,方法名相同,参数列表不同就构成重载.
举个例子,你调用sop(参数列表); 只要不让虚拟机不知道该调用哪个就可以.
作者: ysunday    时间: 2013-11-30 22:35
是的,重载只看参数列表,跟返回值无关
作者: 清风星明    时间: 2013-11-30 23:00
我觉得重载就是发生在一个类的内部,而且是针对方法而不是域而言。若方法的签名相同,但参数的个数或者参数的类型不同,则构成了重载。但返回类型不在考虑范围之内,也就是说,如果仅仅是返回类型不同,则构不成重载。这里由于参数的类型发生了改变,所以我觉得方法1和方法2构成了重载。
作者: 菜不鸟    时间: 2013-11-30 23:03
是重载!
重载:在同一类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不一样。
重载的特点:与返回值类型无关,只看参数列表。
重载的好处:方便阅读,优化程序设计。

方法1和方法2 重载是参数类型不同重载


作者: 硬件之家    时间: 2013-12-1 13:39
这个是重载的,方法名相同,参数列表不同就行。
作者: L_t    时间: 2013-12-1 15:18
我觉得应该是重载吧,所谓重载是方法名相同,参数列表不同,返回值类型无影响,谢谢




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