В общем, вроде разобрался, спасибо за ответы.
В моей голове, действительно, концепции "абстрактный класс" и "абстрактный метод" не существовали друг без друга до сегодняшнего дня.
Попробую дополнить ответ
Igor Vorobiov
При таком подходе абстрактный класс предоставляет базовую реализацию какого-либо метода.
Класс-наследник может либо использовать базовый функционал, либо перегрузить метод.
Клиентский код будет зависеть только от абстрактного класса.
Конкретная реализация метода будет определяться во время выполнения - позднее статическое связывание (аналог виртуальных методов).
Как-то так. Или нет? :)