在學習方法的階段我學習了方法重載(Overload),而在學習面向對象三大特性之繼承的時候我又學習了方法重寫(Override)。ide
方法重載:在同一個類中,容許存在一個以上的同名方法,只要它們的參數個數不一樣或者類型不一樣便可。學習
方法重寫: 子類中出現和父類中如出一轍的方法聲明,方法的名稱和參數列表都相同。spa
方法重載:與返回值類型無關,只看方法名和參數列表 在調用時,虛擬機經過參數列表的不一樣來區分同名方法。對象
方法重寫: 建立子類對象時方法名相同就調用子類的。繼承
方法重載:在同一個類須要定義兩個或者多個方法,方法功能類似但參數類型不一樣時,使用方法重載使方法名相同。ci
方法重寫:當子類須要父類的功能,而功能主體子類又有本身特有的功能時,能夠重寫父類的方法。這樣即沿襲了父類的功能,也定義了子類特有的功能(使用super關鍵字)權限控制
方法重載:虛擬機
方法重載參數列表的不一樣能夠分爲:1、參數個數不一樣; 2、參數類型不一樣, 3、參數的多類型順序不一樣。table
舉例:一、 (int a, int b) (int a, int b, int c)class
二、 (int a, int b) (double a, doule b)
三、 (int a, doule b) (doulbe a, int b)
方法重寫:
一、父類的私有方法不能被子類重寫。
二、子類重寫父類的方法訪問權限不能更低(Java 中一共有四種訪問權限控制,其權限控制的大小狀況是這樣的:public > protected > (default) > private )。
權限修飾符
|
public |
protected |
default |
private |
同一類中 |
√ |
√ |
√ |
√ |
同一包子類,其餘類 |
√ |
√ |
√ |
|
不一樣包 子類 |
√ |
√ |
|
|
不一樣包 其餘類 |
√ |
|
|
|
三、子類方法的返回值必須小於等於父類方法的返回值範圍。
四、靜態的方法也要使用靜態方式書寫。