Решил реализовать один общий метод в абстрактном классе, дабы не реализовывать его в каждом не абстрактном классе. Все нужные методы в конечных классах есть, полиморфизм вроде как тоже применим ибо ссылке типа Movable можно присвоить объект класса, который не реализует интерфейс напрямую.
public static void main(String[] args) {
       Animal animal = new Dog();
       Dog dog = (Dog) animal;

       Movable movable = new Cat();
       Cat cat = (Cat) movable;

       Mouse mouse =  new Mouse();


   }
Но, валидатор говорит что нужно имплементировать интерфейсы напрямую. Для валидатора то я код перепишу, просто насколько я понял из того что я читал на данный момент - общее поведение для группы классов лучше выносить в абстрактный класс родитель, так ведь?