технически самое важное отличие в том, что в интерфейсе нельзя сделать поля, а в абстрактном классе можно. поэтому обойтись только интерфейсами не всегда удаётся. но при прочих равных интерфейс лучше, чем абстрактный класс
тогда еще важнее, что конечный класс несколько интерфейсов может реализовать, а от нескольких абстрактрых классов наследоваться - нет :)