java方法的覆蓋

2021-08-27 13:23:50 字數 794 閱讀 6114

方法覆蓋,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是對方法進行了宣告,而我們在實現時,就需要實現介面宣告的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點:

1、覆蓋的方法的標誌必須要和被覆蓋的方法的標誌完全匹配,才能達到覆蓋的效果;

2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;

3、覆蓋的方法所丟擲的異常必須和被覆蓋方法的所丟擲的異常一致,或者是其子類;

4、被覆蓋的方法不能為private,否則在其子類中只是新定義了乙個方法,並沒有對其進行覆蓋

public class parent 

} class child extends parent

哪些方法可以加入類child中? [bc] //方法的覆蓋

a. int addvalue( int a, int b)

b. public void addvalue ()

c. public int addvalue( int a)

d. public int addvalue( int a,int b )throws exception

a錯的原因是因為:子類重寫父類的方法時,不能縮小父類方法的訪問許可權,也就是必須在a前加public

d錯的原因是因為:父類中未曾丟擲exception異常,因此子類中不能丟擲exception(但是runtimeexception及其子類除外)

java 方法的覆蓋

1.運用場景 假如有100個類,分別為sub1,sub2,sub3,它們的乙個共同行為是寫字,除了sub1類用腳寫字以外,其餘的類都用手寫字。我們可以抽象出乙個父類base,它有乙個方法write 表示寫字,為了提高 可重用性,write 應該採用大多數子類的實現方式。定義父類如下 public v...

Java方法覆蓋

覆蓋方法必須滿足多種約束 1.子類方法的名稱 引數簽名和返回型別必須與父類方法的名稱 引數簽名和返回型別一致 2.子類方法不能縮小父類方法的訪問許可權。但訪問許可權可擴大。比如由預設到public。3.子類方法不能丟擲比父類方法更多的異常。但可以丟擲比父類更少的異常,或不丟擲異常。4.方法覆蓋只存在...

Java的方法覆蓋與變數覆蓋

首先,我們看看關於過載,和覆蓋 重寫 的簡明定義 方法過載 如果有兩個方法的方法名相同,但引數不一致,哪麼可以說乙個方法是另乙個方法的過載。方法覆蓋 如果在子類中定義乙個方法,其名稱 返回型別及引數簽名正好與父類中某個方法的名稱 返回型別及引數簽名相匹配,那麼可以說,子類的方法覆蓋了父類的方法 我們...