在一个设置时钟的程序中这样一个函数
int getParameter(String s1,int s2)
{
String s=getParameter(s1);
return(s!=null)?Integer.parseInt(s):s2;
}
解释是经过超载的函数模式,方便用户从网页中得到参数,请问这个函数有什么用?
int getParameter(String s1,int s2)
{
String s=getParameter(s1);
return(s!=null)?Integer.parseInt(s):s2;
}
解释是经过超载的函数模式,方便用户从网页中得到参数,请问这个函数有什么用?
String getParameter(String s1);这两个方法的名字都是“getParameter”,但签名不同,第一个方法的签名是getParameter(String, in),第二个是getParameter(String)。也就是说,方法的签名是由方法名和参数类型列表共同构成的。(有一种说法认为返回值类型也是签名的一部分,但是Java不支持仅仅返回值不同的方法覆盖,所以我们不把返回值类型作为签名的一部分。)综上所述,这两个getParameter方法就是互相覆盖(overload)的。用同样一个getParameter调用语句,如果你传递两个参数(第一个是String,第二个是int),就调用第一个方法;如果传递一个String参数,就调用第二个方法。为什么要这样做?为了避免重复代码(Duplicate Code)。因为重复代码是最大的错误之源。说得不清楚,你还有什么疑问吗?
如果讲超载的话,被交警抓住了要罚款的!