我在一本书中读到(法语:Claude Delannoy的Programmez en Java 5 et 6),在Java 5及其早期版本中,如果你在一个类中有一个抽象方法,那么这个类就是抽象的,不必在类之前提到关键字abstract
。
这句话是真的吗?我试图找到Java SE 5规范,但无法找到。
如果您想使类抽象化,无论您使用的是哪个版本的java,都需要将其声明为abstract
。
若一个类包含一个抽象方法,那个么该类也将变为抽象的,您需要声明该类为抽象的以解决编译问题。
Oracle发布了返回Java 6的JLS:https://docs.oracle.com/javase/specs/我不确定Java 5的JLS是否可以在线使用。
也就是说,无论考虑哪个Java版本,您的问题都有相同的答案:
正常类可能具有抽象方法(§8.4.3.1、§9.4),即,已声明但尚未实现的方法,前提是抽象类。
这意味着:具有抽象方法的类必须声明为抽象的,否则将出现编译错误。