第 4 章 Java 类型系统

本章以基于类的面向对象编程为基础,介绍高效使用 Java 静态类型系统所需知道的其他概念。

第 4 章 Java 类型系统 - 图1 静态类型语言的变量类型是确定的,如果把不兼容类型的值赋给变量,会导致编译时错误。Java 是一种静态类型语言。只在运行时检查类型兼容性的语言叫作动态类型语言,JavaScript 便是一种动态类型语言。

Java 的类型系统不仅涉及类和基本类型,还涉及与类的基本概念相关的其他引用类型,但这些引用类型有些不同,javac 或 JVM 往往会使用特殊的方式处理。

我们已经介绍了数组和类,它们是使用最广泛的两种 Java 引用类型。本章先介绍另一种重要的引用类型——接口。然后介绍 Java 的泛型,泛型在 Java 的类型系统中扮演着重要角色。掌握这些知识后,我们再介绍 Java 中编译时和运行时类型之间的区别。

为了完整介绍 Java 的引用类型,我们要介绍两种特殊的类和接口——枚举注解。本章最后介绍嵌套类型和 Java 8 引入的 lambda 表达式

下面先介绍接口。接口算是继类之后最重要的 Java 引用类型,而且是整个 Java 类型系统的重要组成。