深入java函數重載

來源:互聯網
上載者:User

標籤:public   根據   簡單的   tps   一個   static   就是   直接   名稱   

深入java函數重載

先思考幾個問題:

有這個一個重載的函數:

public static void chongZai1(ArrayList list){    System.out.println("ArrayList ");}public static void chongZai1(AbstractList list){    System.out.println("AbstractList ");}public static void chongZai1(List list){    System.out.println("List ");}

1.

 public static void main(String[] args) {    List list = new ArrayList();    chongZai1(list);    ArrayList arrayList = new ArrayList();    chongZai1(arrayList);}

會如何輸出?

輸出 :
List
ArrayList

概念:
函數或者方法有同樣的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數或者方法之間,互相稱之為重載函數或者方法。

  • 函數的重載是一個編譯期概念。
  • 編譯時間根據參數變數的類型判斷應該調用哪個方法。

簡單的理解就是

        List list = new ArrayList();                chongZai1(list);

直接去找 參數為List類型的函數

    ArrayList arrayList = new ArrayList();    chongZai1(arrayList);

先去找參數類型為 ArrayList 的方法 沒有就去找參數為ArrayList父類的函數 最後才是找參數為Arraylist實現的介面的函數。

如果是這樣重載的函數:

public static void chongZai1(AbstractList list){    System.out.println("AbstractList ");}public static void chongZai1(AbstractCollection list){    System.out.println("AbstractList ");}public static void chongZai1(List list){    System.out.println("List ");}public static void chongZai1(Serializable list){    System.out.println("List ");} public static void main(String[] args) {    ArrayList arrayList = new ArrayList();    chongZai1(arrayList);}    這樣編譯期就會拋錯!    因為它不知道該去掉哪個方法 這些都是父的父類或者實現的介面    集體規則 參考:[https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.5](https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2.5)

深入java函數重載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.