Я заранее прошу прощения за заголовок.
Я пытаюсь передать объект Cat
, который реализует Animal
, в интерфейс с именем Groom
.В моем Groom
, который обрабатывает чистку реализации Cat
, я должен уменьшить свой объект, чтобы понять, что я чистлю, потому что интерфейс Groom
принимает Animal
в качестве параметра.
public interface Groom {
void groom(Animal animal);
}
public class CatGroomer implements Groom {
void groom(Animal animal) {
Cat cat = (Cat) animal; // <---- how can i avoid this downcast
}
}
public interface Animal {
void do();
void animal();
void things();
}
public class Cat implements Animal {
...
}