假设要设计一个收银台
A方案:设计三个窗口,分别使用现金、信用卡、支票进行交付
B方案:设计一个窗口,可以根据用户付款方式,实现现金、信用卡、支票进行交付。相对于A方案,B方案更灵活
方法的重载
什么是方法的重载?
1. 在一个类中有两个或多个方法,他们具有相同的名字,但有不同的参数列表(个数、类型、顺序)。
2.方法重载是实现多态的一种方法。
为什么要方法重载?
解决同一种功能的多个方法,因为参数列表不同,带来的方法名称不同的问题。节约了
标识符
方法重载判断原则:
“两同一不同”:
两同:同类中;方法名相同。
一不同:方法参数列表不同(参数类型、参数个数、参数顺序);
只要参数类型、参数个数、参数顺序有一个不同、参数列表就不同。
方法重载与返回值类型无关,只是一般要求返回值类型一致
/**
* 重载示例
*
* @author pan_junbiao
*
*/
public class OverLoadTest
{
public static int add(int a, int b)
{
return a + b;
}
public static int add(int a, int b, int c)
{
return a + b + c;
}
public static double add(double a, double b)
{
return a + b;
}
/**
* 定义不定长参数方法
*/
public static int add(int... a)
{
int s = 0;
for (int i = 0; i < a.length; i++)
{
s += a[i];
}
return s;
}
public static void main(String[] args)
{
System.out.println("调用add(int,int)方法:" + add(1, 2));
System.out.println("调用add(int,int,int)方法:" + add(1, 2, 3));
System.out.println("调用add(double,double)方法:" + add(2.1, 3.5));
// 调用不定长参数方法
System.out.println("调用不定长参数方法:" + add(1, 2, 3, 4, 5, 6, 7, 8, 9));
System.out.println("调用不定长参数方法:" + add(1, 2));
}
}
练习:定义一个Hero类,声明一个fire,方法。第一个方法不包含参数,输出开火这个字符串,第二个方法有两个参数,int count,代表子弹数量,String fangxiang ,代表子弹方向。输出“子弹数为”+count,“方向为”+fangxiang
在main方法中分别调用。
总结重载的要求
、