http://www.verejava.com/?id=16992753789137
public class OverLoad {
public static void main(String[] args) {
Caculator c = new Caculator();
double result = c.add(10, 20);
System.out.println(result);
//调用参数类型不同的重载方法
int result2 = c.add(50, 55);
System.out.println(result2);
//调用重载方法
double[] arr = { 20, 30 };
result = c.add(arr);
System.out.println(result);
//调用另一个重载方法
Operator op = new Operator(30, 40);
result = c.add(op);
System.out.println(result);
}
}
/**
方法的重载:
在同一个类中, 有同名的方法名,不同的参数个数或参数类型,返回值跟重载没有关系
方法重载特性:
当对象引用调用方法的时候, 会自动根据方法的参数个数或类型, 调用相应的重载方法
*/
/**
定义一个计算类Caculator
类中定义一个公有的加方
*/
class Caculator {
//输入两个数相加, 返回相加后的结
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b) {
return a + b;
}
//方法重载
public double add(double[] arr) {
return arr[0] + arr[1];
}
public double add(Operator op) {
return op.getA() + op.getB();
}
}
class Operator {
private double a;
private double b;
public Operator(double a, double b) {
this.a = a;
this.b = b;
}
public double getA() {
return this.a;
}
public double getB() {
return this.b;
}
}