Java 5 或之前的摘要 class

Abstract class in Java 5 or previous

我在一本书(Programmez en Java 5 et 6 中读到,作者是 Claude Delannoy,法语)在 Java 5 及其以前的版本,如果你在 class 中有一个抽象方法,那么这个 class 就是抽象的,并且没有必要在 class.[=13= 之前提到关键字 abstract ]

这个说法是真的吗?我试图找到 Java SE 5 规范,但找不到。

Oracle 发布了可追溯到 Java 6 的 JLS:https://docs.oracle.com/javase/specs/ 我不确定 Java 5 的 JLS 是否在线可用。

也就是说,无论考虑哪个 Java 版本,您的问题都有 the same answer

Normal classes may have abstract methods (§8.4.3.1, §9.4), that is, methods that are declared but not yet implemented, only if they are abstract classes.

这意味着:必须将具有抽象方法的 class 声明为抽象的,否则会出现编译错误。

如果你想做一个class abstract,你需要声明它abstract,不管你使用的是哪个版本的java。

如果class包含一个抽象方法,那么class也会变成抽象方法,你需要声明class抽象来解决编译问题。