package com.company.demo02;
/*
* 对于功能类似的方法来说,因为参数不同,却需要记住那么多不同的方法名称,太麻烦
* 方法的重载:多个方法的名称一样,但是参数列表不一样
* 好处:只需要记住唯一一个方法的名称,就可以实现类似的多个功能
* */
public class Demo01MethoOverload {
public static void main(String[] args) {
/* System.out.println(sum(10,20));
System.out.println(sumThree(10,20,30));
System.out.println(sumfour(10,20,30,40));
*/
System.out.println(sum(10,20));
System.out.println(sum(10,20,30));
System.out.println(sum(10,20,30,40));
}
public static int sum(int a,int b){
System.out.println("两个参数");
return a+b;
}
public static int sum(int a,int b, int c){
System.out.println("3个参数");
return a+b+c;
}
public static int sum(int a,int b, int c,int d){
System.out.println("4个参数");
return a+b+c+d;
}
}
方法重载的注意事项
- 方法重载与下列因数相关
- 1.参数个数不同
- 2.参数类型不同
- 3.参数的多类型顺序不同
- 方法的重载与下列因数无关
- 1.与参数的名称无关
- 2.与方法的返回值类型无关
重载练习
package com.company.demo02;
/*
* 题目要求:
* 比较两个数据是否相等
* 参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型
* 并再main方法测试
* */
public class Demo02MethodOverloadSanme {
public static void main(String[] args) {
byte a=10;
byte b=20;
System.out.println(sum(a,b));
System.out.println(sum(10,10));
System.out.println(sum((short) 10,(short) 20));
System.out.println(sum(10L,20L));
}
public static boolean sum(int a,int b){
System.out.println("两个int");
boolean sum;
if (a==b){
sum=true;
}else {
sum=false;
}
return sum;
}
public static boolean sum(byte a,byte b){
System.out.println("两个byte");
boolean sum =a == b?true:false;
return sum;
}
public static boolean sum(short a,short b){
System.out.println("两个short");
return a==b;
}
public static boolean sum(long a ,long b){
System.out.println("两个long");
if (a==b){
return true;
}else {
return false;
}
}
}
判断哪些方法是重载关系
实现重载的println
CTRL + 鼠标左键 查看println源码
package com.company.demo02;
/*
* 在输出调用语句的时候,println方法进行了多种数据的重载
* */
public class Demo04OverloadPrint {
public static void main(String[] args) {
myPrint(100);
myPrint("hello");
}
public static void myPrint(byte num){
System.out.println(num);
}
public static void myPrint(short num){
System.out.println(num);
}
public static void myPrint(int
num){
System.out.println(num);
}
public static void myPrint(long num){
System.out.println(num);
}
public static void myPrint(float num){
System.out.println(num);
}
public static void myPrint(double
num){
System.out.println(num);
}
public static void myPrint(char num){
System.out.println(num);
}
public static void myPrint(String num){
System.out.println(num);
}
}