方法重载存在的必要性可以从类需要多样的构造器处得到一定的合理解释。
方法的重载为灵活的编写程序,带来了极大的好处!
(一定要将方法的重载与方法的覆盖区别开来)
重载:为了表述同一行为目的的方法名,具有不同的行为方式。
覆盖:发生在继承中,导出类具有与父类具有相同方法名和参数列表的方法,以实现对父类方法的屏蔽和覆盖。(可以通过final 关键字防止覆盖现象的发生)
Example:
class parent
{
run(){}
}
class child extends parent()
{
run(){}
}
此例子中,导出类child即实现了对基类parent中run()方法的覆盖。
重载的方法具有相同的方法名,区别其的方法是通过其独一无二的参数列表。
Example:
void eatSomething(int foodNumber , String Date)
void eatSomething(String foodname, String Date)
参数列表不同,一般包括以下几种情况:
1、参数类型不同;
2、参数个数不同;
3、参数顺序不同。(此种方式十分少用,易造成混淆)
Example:(不推荐使用)
void eatSomething(int foodNumber , String Date)
void eatSomething( String Date, int foodNumber )
以上可以表示不同的重载函数,其参数列表中的类型和个数都相同,但是其参数的排列顺序不同!
注意:无法通过方法的返回类型判别重载函数。
void print()
{}
int print()
{return 3;}
原因:
print()
编译器将无法判断,该调用哪个print()。