Java中的重载和方法返回类型的关系? [英] The relationship of overload and method return type in Java?
本文介绍了Java中的重载和方法返回类型的关系?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果有两种方法,则它们具有不同的参数,并且它们的返回类型不同。像这样:
If there are two method, they have different parameters, and their return types are different. Like this:
int test(int p) {
System.out.println("version one");
return p;
}
boolean test(boolean p, int q) {
System.out.println("version two");
return p;
}
如果返回类型相同,当然这是重载即可。但由于返回类型不同,我们可以将其视为重载吗?
If the return types are same, of course this is overload. But since the return types are different, can we regard this as overload still?
推荐答案
考虑以下重载点:
1)在java中重载方法的第一个重要规则是更改方法签名。方法签名由参数的数量,参数的类型和参数的顺序组成,如果它们的类型不同。
public class DemoClass {
// Overloaded method
public Integer sum(Integer a, Integer b) {
return a + b;
}
// Overloading method
public Integer sum(Float a, Integer b) { //Valid
return null;
}
}
2)方法的返回类型永远不会方法签名的一部分,所以只更改方法的返回类型不等于方法重载。
public class DemoClass {
// Overloaded method
public Integer sum(Integer a, Integer b) {
return a + b;
}
// Overloading method
public Float sum(Integer a, Integer b) { //Not valid; Compile time error
return null;
}
}
3)方法引发的异常也是重载方法时不考虑。所以你的重载方法抛出相同的异常,一个不同的异常,或者它不会抛出任何异常;对方法加载没有任何影响。
public class DemoClass {
// Overloaded method
public Integer sum(Integer a, Integer b) throws NullPointerException{
return a + b;
}
// Overloading method
public Integer sum(Integer a, Integer b) throws Exception{ //Not valid; Compile time error
return null;
}
}
这篇关于Java中的重载和方法返回类型的关系?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文