Интересно, в чем разница в Java между классом abstract и классом, который имеет все свои методы abstract ? Я имею в виду, является ли абстрактный класс просто классом, методы которого автоматически получают абстрактный ?
Абсолютно нет. Действительно, класс может быть абстрактным без каких-либо методов, которые являются абстрактными, хотя это относительно редко (см. Комментарий Марка ниже для примера). С другой стороны, если у класса есть какие-либо абстрактные методы, то он должен быть объявлен абстрактным.
Вообще говоря, цель абстрактного класса - предоставить скелету некоторое неабстрактное поведение, но другие биты все еще должны быть заполнены подклассами. Это можно использовать, например, с шаблоном метода шаблона .