public class Test{
void max(int a, int b){
System.out.println( a>b?a:b);
}
void max(short a,short b){
System.out.println( a>b?a:b);
}
public static void main(String[] args){
Test t = new Test();
t.max(3,4);
}
}
上面这个肯定是重载,问题在于何时执行max(short a,short b).
由于jvm在默认情况下都会把整数转化为int类型。因此只会执行max(int a,int b).
下面可以执行到:
Test t = new Test();
short a = 3;
short b = 4;
t.max(a,b);
void max(int a, int b){
System.out.println( a>b?a:b);
}
void max(short a,short b){
System.out.println( a>b?a:b);
}
public static void main(String[] args){
Test t = new Test();
t.max(3,4);
}
}
上面这个肯定是重载,问题在于何时执行max(short a,short b).
由于jvm在默认情况下都会把整数转化为int类型。因此只会执行max(int a,int b).
下面可以执行到:
Test t = new Test();
short a = 3;
short b = 4;
t.max(a,b);
本文通过一个具体的Java代码示例介绍了方法重载的概念,并详细解释了在不同参数类型的情况下如何选择合适的方法进行调用。重点分析了整型变量传递给短整型参数的情况以及JVM如何处理这些问题。
466

被折叠的 条评论
为什么被折叠?



