语音版:
我定义了一个类如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class FirstJava { private int value; private int count; public void setValue(int value) { this.value = value; } public int setValue(int value) { this.value = value; return value; } public void setValue(int value, int count) { this.value = value; this.count = count; } } |
上面的代码定义了三个setValue方法,第一个与第二个区别是方法返回值不同,第三个是增加了一个参数。上面的代码大家检查一下能不能编译过,答案先不说,先来说一下Java中方法重载是怎么回事。方法重载的规则是方法名字相同,参数列表不同。
参数列表不同分为下面三种情况:
- 参数个数不同:这个很容易理解,方法参数可以使一个也可以是两个等等;
- 参数顺序不同:参数个数相同,包含有不同的数据类型,但是参数的顺序不一样,这种情况应该是避免出现的,因为这样的代码比较丑陋,难以维护;
- 参数类型不同:参数个数相同,但是参数的数据类型不同;
清楚了重载的规则大家应该不难判断出来上面的代码是有问题的,因为规则中没有通过方法的返回值来区分方法重载的,所以第二个setValue不能那样写。
本文为原创,禁止转载!
大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,想要系统学习某一种开发知识,我们这里有java高手,C++/C高 手,windows/Linux高手,android/ios高手,请大家关注我的微信公众号:程序员互动联盟or coder_online,大牛在线为您提供服务。
本文原始地址:http://www.coderonline.net/faq-java-method-overloading.html
本站所有文章,除特别注明外,均为本站原创,转载请注明出处来自http://www.coderonline.net/
否则保留追究法律责任的权利!
记住了,一定要学以致用
还有语音版,牛气