В JDK 1.0 действительно было необходимо иметь хотя бы один абстрактный метод в абстрактном классе. Это ограничение было снято в JDK 1.1 (1997? (Я старый)) и такие классы добавлены в библиотеку Java, как java.awt.event.KeyAdapter
.
В C ++ вам нужна как минимум одна чисто виртуальная функция для создания подкласса и как минимум одна виртуальная функция для добавления RTTI в класс. Обычно имеет смысл использовать деструктор.
Обратите внимание, что при переопределении неабстрактных методов рекомендуется использовать @Override
. Он не только сообщает читателю важную информацию о том, что пытается сделать код, но также обнаруживает распространенные ошибки, когда опечатки или неправильные типы параметров предотвращают переопределение.