e0db96201a75001d1dddb6604daa6ad2

来自「java程序设计教程的源码」· 代码 · 共 48 行

TXT
48
字号
//【例4-12】  方法重载的使用。
//程序清单4-12:  //MethodOverloadingDemo.java
package e4_12;
public class MethodOverloadingDemo {
	public static void main(String args[]) {
		int a = 10, b = 20, z = 30;
		ArithmeticOperation ao = new ArithmeticOperation();
//ao.add(a, b)与add(int x, int y)精确匹配,而不调用add(double x, double y)
	     System.out.println("ao.add(a, b)=" + ao.add(a, b));
	     // ao.add((double) a, (double) b)与add(double x, double y)精确匹配
		System.out.println("ao.add((double) a, (double) b)="
				+ ao.add((double) a, (double) b));
		// ao.add(a, (double) b)与add(int x, double y)精确匹配
	     System.out.println("ao.add(a, (double) b)=" + ao.add(a, (double) b));
		// ao.add((double) a, b)与add(double y, int x)精确匹配
	     System.out.println("ao.add((double) a, b)=" + ao.add((double) a, b));
		// ao.add(a, b, z)没有与之精确匹配的方法,则将int类型的变量a,b,z自动转
//换为doulbe类型,然后与add(double x, double y, double z)精确匹配
		System.out.println("ao.add(a, b, z)=" + ao.add(a, b, z));
	}
}
class ArithmeticOperation {
	public int add(int x, int y) {
		System.out.println("调用:public int add(int x, int y)");
		return x + y;
	}
	/* 返回值类型不足以区分重载方法
	 public double add(int x, int y) { 
	   return (double) (x + y);
	 } 	 */
	public double add(double x, double y) {// 参数类型不同重载
		System.out.println("调用:public double add(double x, double y)");
		return x + y;
	}
	public double add(int x, double y) {// 参数类型不同重载
		System.out.println("调用:public double add(int x, double y)");
		return (double) (x + y);
	}
	public double add(double y, int x) {// 参数顺序不同重载
		System.out.println("调用:public double add(double y, int x)");
		return (double) (x + y);
	}
	public double add(double x, double y, double z) {// 参数个数不同重载
   System.out.println("调用:public double add(double x, double y, double z) ");
		return x + y + z;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?