跳轉到內容

程式語言導論/子型別多型性

來自華夏公益教科書,開放的書籍,開放的世界

子型別多型性

[編輯 | 編輯原始碼]

子型別的元素集合是現有集合的子集。函式的引數定義支援該型別或子型別的任何引數。這樣,如果函式/運算子的引數/運算元具有子型別,則該函式/運算子表現出子型別多型性。以下 Java 程式碼說明了這種多型性的使用。

public class Sub {
  public static void print(Object o) {
    System.out.println(o);
  }
  public static void main(String[] a) {
    print(new String("dcc024"));
    print(new Integer(42));
    print(new Character('a'));
  }
}

在 Java 中,Object 類是所有 Java 類 的超類。Java 中的每個類都直接或間接地擴充套件自 Object 類。Object 類是 Java 類層次結構的根。在上面的程式碼中,第 2 行定義了一個名為 print 的方法,它以 Object 作為引數,並使用 System.out 物件的 println 方法列印它。第 6 行到第 8 行顯示了以 String、Integer 和 Character 物件作為引數的子型別多型呼叫。在預期類作為引數的任何位置,都接受該類的子類作為引數。

引數化多型性

華夏公益教科書