Java基础---Java方法的重载Overload
Posted hoganhome
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础---Java方法的重载Overload相关的知识,希望对你有一定的参考价值。
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。
方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。
方法重载与下列因素相关:
1. 参数个数不同
2. 参数类型不同
3. 参数的多类型顺序不同
方法重载与下列因素无关:
1. 与参数的名称无关
2. 与方法的返回值类型无关
1 public class DemoMethodOverload 2 3 public static void main(String[] args) 4 /*System.out.println(sumTwo(10, 20)); // 30 5 System.out.println(sumThree(10, 20, 30)); // 60 6 System.out.println(sumFour(10, 20, 30, 40)); // 100*/ 7 8 System.out.println(sum(10, 20)); // 两个参数的方法 9 System.out.println(sum(10, 20, 30)); // 三个参数的方法 10 System.out.println(sum(10, 20, 30, 40)); // 四个参数的方法 11 // System.out.println(sum(10, 20, 30, 40, 50)); // 找不到任何方法来匹配,所以错误! 12 13 sum(10, 20); 14 15 16 public static int sum(int a, double b) 17 return (int) (a + b); 18 19 20 public static int sum(double a, int b) 21 return (int) (a + b); 22 23 24 public static int sum(int a, int b) 25 System.out.println("有2个参数的方法执行!"); 26 return a + b; 27 28 29 // 错误写法!与方法的返回值类型无关 30 // public static double sum(int a, int b) 31 // return a + b + 0.0; 32 // 33 34 // 错误写法!与参数的名称无关 35 // public static int sum(int x, int y) 36 // return x + y; 37 // 38 39 public static int sum(double a, double b) 40 return (int) (a + b); 41 42 43 public static int sum(int a, int b, int c) 44 System.out.println("有3个参数的方法执行!"); 45 return a + b + c; 46 47 48 public static int sum(int a, int b, int c, int d) 49 System.out.println("有4个参数的方法执行!"); 50 return a + b + c + d; 51 52 53
题目要求:
比较两个数据是否相等。
参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
并在main方法中进行测试。
1 public class Demo02MethodOverloadSame 2 3 public static void main(String[] args) 4 byte a = 10; 5 byte b = 20; 6 System.out.println(isSame(a, b)); 7 8 System.out.println(isSame((short) 20, (short) 20)); 9 10 System.out.println(isSame(11, 12)); 11 12 System.out.println(isSame(10L, 10L)); 13 14 15 public static boolean isSame(byte a, byte b) 16 System.out.println("两个byte参数的方法执行!"); 17 boolean same; 18 if (a == b) 19 same = true; 20 else 21 same = false; 22 23 return same; 24 25 26 public static boolean isSame(short a, short b) 27 System.out.println("两个short参数的方法执行!"); 28 boolean same = a == b ? true : false; 29 return same; 30 31 32 public static boolean isSame(int a, int b) 33 System.out.println("两个int参数的方法执行!"); 34 return a == b; 35 36 37 public static boolean isSame(long a, long b) 38 System.out.println("两个long参数的方法执行!"); 39 if (a == b) 40 return true; 41 else 42 return false; 43 44 45 46
判断方法是否能够重载
1 public class Demo03OverloadJudge 2 public static void open() // 正确重载 3 public static void open(int a) // 正确重载 4 static void open(int a,int b) // 代码错误:和第8行冲突 5 public static void open(double a,int b) // 正确重载 6 public static void open(int a,double b) // 代码错误:和第6行冲突 7 public void open(int i,double d) // 代码错误:和第5行冲突 8 public static void OPEN() // 代码正确不会报错,但是并不是有效重载 9 public static void open(int i,int j) // 代码错误:和第3行冲突 10
以上是关于Java基础---Java方法的重载Overload的主要内容,如果未能解决你的问题,请参考以下文章