跳转到内容

编程语言导论/子类型多态性

来自维基教科书,开放的书籍,开放的世界

子类型多态性

[编辑 | 编辑源代码]

子类型的元素集合是现有集合的子集。函数的参数定义支持该类型或子类型的任何参数。这样,如果函数/运算符的参数/操作数具有子类型,则该函数/运算符表现出子类型多态性。以下 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 对象作为参数的子类型多态调用。在预期类作为参数的任何位置,都接受该类的子类作为参数。

参数化多态性

华夏公益教科书