Абстрактный класс в Java 5 или более ранней версии

Я читал в книге (Programmez en Java 5 et 6 Клода Деланной, на французском языке), что в Java 5 и ее предыдущих версиях, если у вас есть абстрактный метод в классе, этот класс является абстрактным, и упоминать его не нужно ключевое слово abstract перед классом.

Это утверждение верно? Я пытался найти спецификацию Java SE 5, но она недоступна.

2 ответа

Решение

Oracle публикует JLS, начиная с Java 6: https://docs.oracle.com/javase/specs/ Я не уверен, что JLS для Java 5 доступен онлайн.

Тем не менее, ваш вопрос имеет один и тот же ответ, независимо от того, какая версия Java считается:

Нормальные классы могут иметь абстрактные методы ( §8.4.3.1, §9.4), то есть методы, которые объявлены, но еще не реализованы, только если они являются абстрактными классами.

Это означает: класс с абстрактным методом должен быть объявлен как абстрактный, иначе вы получите ошибку компиляции.

Если вы хотите сделать класс абстрактным, вам нужно объявить его abstract независимо от того, какую версию Java вы используете.

Если класс содержит абстрактный метод, этот класс также становится абстрактным, и вам необходимо объявить этот класс абстрактным для решения проблемы компиляции.

Другие вопросы по тегам