override

override

接口方法
override可以翻譯為複蓋,從字面就可以知道,它是複蓋了一個方法并且對其重寫,以求達到不同的作用。對我們來說最熟悉的複蓋就是對接口方法的實現,在接口中一般隻是對方法進行了聲明,而我們在實現時,就需要實現接口聲明的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類複蓋父類中的方法。
  • 中文名:覆蓋
  • 外文名:override
  • 别名:
  • 含義:覆蓋了一個方法并且對其重寫
  • 要求:需要實現接口聲明的所有方法

注意事項

覆蓋

1、覆蓋的方法的标志必須要和被覆蓋的方法的标志完全匹配,才能達到覆蓋的效果;n2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一緻;n3、覆蓋的方法所抛出的異常必須和被覆蓋方法的所抛出的異常一緻,或者是其子類;n4、被覆蓋的方法不能為private,否則在其子類中隻是新定義了一個方法,并沒有對其進行覆蓋。

重載

overload對我們來說可能比較熟悉,可以翻譯為重載,它是指我們可以定義一些名稱相同的方法,通過定義不同的輸入參數來區分這些方法,然後再調用時,VM就會根據不同的參數樣式,來選擇合适的方法執行。在使用重載要注意以下的幾點:

1、在使用重載時隻能通過不同的參數樣式。例如,不同的參數類型,不同的參數個數,不同的參數順序(當然,同一方法内的幾個參數類型必須不一樣,例如可以是fun(int, float),但是不能為fun(int, int));

2、不能通過訪問權限、返回類型、抛出的異常進行重載;

3、方法的異常類型和數目不會對重載造成影響;

4、對于繼承來說,如果某一方法在父類中是訪問權限是priavte,那麼就不能在子類對其進行重載,如果定義的話,也隻是定義了一個新方法,而不會達到重載的效果。

測試程序

下面是對override和overload的測試程序,其中注釋中的内容都是會産生編譯錯誤的代碼,将注釋去掉,看看在編譯時會産生什麼效果。n// 對overload測試的文件:OverloadTest.javanpublic class OverloadTest {

相關詞條

相關搜索

其它詞條