java中方法重载
Posted 苦海123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中方法重载相关的知识,希望对你有一定的参考价值。
方法重载(OverLoad):
方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用:JVM通过方法的参数列表,调用不同的方法。
优势:用一个方法名可以实现多个不同参数被传递的方法调用,但是参数类型相同的参数个数与方法的参数个数不匹配时就会报错。
/*
* 1.方法重载:在同一个类中定义多个方法名相同且参数个数不同的方法的过程。
* 2.方法重载调用:根据传入的参数个数调用相同参数个数的方法(自动匹配参数相同的方法,匹配不到的话就会报错)。
* 3.参数类型不同或参数类型的顺序不同,即使参数个数相同,也不会报错。
* 4.定义两个以上只是参数名称不同的方法,也是会报错,即不能重载。
* 最后总结:方法重载调用相对应的方法,是根据传入参数的个数、参数类型、参数顺序决定的,与参数名称、返回值的类型、修饰符无关。
* */
package cn.kuhai.www;
public class Overload {
public static void main(String[] args){
//2-1-1传入不同个数的参数调用sum方法:
int result1 = sum(1,2);
System.out.println(result1);//2-1:int,int 3
int result2 = sum(1,2,3);
System.out.println(result2);//2-1:int,int,int 6
//如果定义的方法中没有与传入参数个数相匹配的方法,那么就会报错,如:
//int result3 = sum(1,2,3,4);
//int result3 = sum(1);
//3-1-1.调用product方法(根据传入参数的类型调用对应的方法):
System.out.println(product(1,2));//3-1:int,int 2
System.out.println(product(1,3.0));//3-1:int,double 3
System.out.println(product(3.0,2));//3-1:double,int 6.0
System.out.println(product(3.0,3.0));//3-1:double,double 9
//3-2-1.调用sums方法:
System.out.println(sums(4,3.0));//3-2:int,double 7.0
System.out.println(sums(4.0,2));//3-2:double,int 6.0
//4-1-1.调用say方法:
System.out.println(say("hello"));//4-1:String hello
}
//2-1.定义参数个数不同的两组sum方法:
public static int sum(int a,int b){
System.out.println("2-1:int,int");
return a + b;
}
public static int sum(int a,int b,int c){
System.out.println("2-1:int,int,int");
return a + b + c;
}
//3-1.定义四组参数类型不同的方法sum:
public static int product(int a,int b){
System.out.println("3-1:int,int");
return a * b;
}
public static int product(int a,double b){
System.out.println("3-1:int,double");
return (int) (a * b);
}
public static double product(double a,int b){
System.out.println("3-1:double,int");
return a * b;
}
public static int product(double a,double b){
System.out.println("3-1:double,double");
return (int) (a * b);
}
//3-2.定义两组参数顺序不同的方法sums:
public static double sums(int a,double b){
System.out.println("3-2:int,double");
return a + b;
}
public static double sums(double a,int b){
System.out.println("3-2:double,int");
return a + b;
}
//4-1.定义两组参数名称不同的方法say:
public static String say(String str){
System.out.println("4-1:String");
return str;
}
//定义仅仅参数名称不同的方法时会报错:
//public static String say(String saystr){
// return saystr;
//}
}
提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海
以上是关于java中方法重载的主要内容,如果未能解决你的问题,请参考以下文章