1.java中方法的重寫和重載
a)重載(Overloading):
1)方法名要一樣,但是參數類型或個數不一樣。
2)與返回值無關
3)在同一個類中
4)重載是類的多態性的體現
public class OverLoad {
public String run(Integer id){
System.out.println("方法1");
return "方法1";
}
public String run(String name){
System.out.println("方法2");
return "方法1";
}
public void run(Integer id,String name){
System.out.println("方法3");
}
}
b.方法的重寫(Override)
1)子類繼承父類
2)子類重寫父類的方法,方法名,參數必須一樣,返回值類型一樣或者子類是父類的返回值類型的子類。方法具體的實現可以不一樣。
3)如果父類中的方法被private限制訪問權限,則不能被重寫
4)如果方法被final聲明,則不能被重寫
5)重寫,是子類與父類之間多態性的表現
6)子類訪問權限大於等於父類方法訪問權限
class Father{
father(){
}
public void methodA(){
run();//跑步
}
}
class Son{
son(){
}
public void methodA(){
slowRun();//慢跑
}
}
父類methodA方法,實現是run,而子類想使用這個方法,但是隻想慢慢跑,
所以重寫具體的實現。
c.關於重寫的比較經典的例子:
有一個動物類Animal,動物類裏面有一個方法:跑run()
現在一條狗dog類繼承了Animal類,一隻貓cat也繼承了Animal類,
dog和cat都使用run()跑這個方法,但是狗和貓跑的方式不一樣,所
以他們這個時候就得重寫run()方法,跑的方法run()不變,具體方法
的時候,貓有貓具體的跑的方式,狗有狗具體的跑的方式。