Копипаста:
Правильно, что вы сделали абстрактный класс.
Неправильно, что не выделили из него интерфейс - не всегда есть возможность экстендиться.
Давайте сделаем интерфейс Command и класс AbstractCommand?