泛型是什麼?

今天又聽了一堆名詞....記都記不完,也聽不太懂XDD
只好花時間問Google做功課

進入正題,泛型簡單來說就是用來增加彈性,例如當我們有同一個演算法,可是要處理的參數型別有很多種,就可以透過泛型來設計。
舉例來說List、ArrayList這些都有泛型的設計,所以我們在使用時可以進一步限制他們的型別。如List<String>、ArrayList<Customer>(Customer是自己設計的類別)


接著看泛型的使用,直接先看例子:
class Node<T>{
     private T value;

     T getValue(){
          return value;
     }

     setValue(T value){
           this.value = value;
     }
}


當我們在使用此Class時

Node<String> node = new Node<String>();

就會做出下面這個Node

class Node<String>{
     private String value;

     String getValue(){
          return value;
     }

     setValue(String value){
           this.value = value;
     }
}


那我們如果是其他的型別

Node<int> node = new Node<int>();

則會做出下面這個Node

class Node<int>{
     private int value;

     int getValue(){
          return value;
     }

     setValue(int value){
           this.value = value;
     }
}


上面這個例子就可以看出來Node這個Class用到了泛型,把型別的指定延後,提高類別的彈性。



其實有這些疑問是因為想知道「泛型跟多型的差別在哪?」,但需要先徹底了解泛型是什麼才有辦法去比較,只好留到下一篇再說明了。

留言

這個網誌中的熱門文章

API、Method和Library是什麼東西和關係?

《人月神話》簡易心得

Asp.net的網頁生命週期