Во-первых, причешите код. Воспользуйтесь checkstyle'ом https://github.com/dkomanov/fizteh-java-2013/blob/master/github-workflow.md
Во-вторых, давайте каждый класс вынесем в отдельный файлик.
В-третьих, копипаста:
Правильно, что вы сделали абстрактный класс.
Неправильно, что не выделили из него интерфейс - не всегда есть возможность экстендиться.
Давайте сделаем интерфейс Command и класс AbstractCommand?