Jedną z zalet intefejsów to traktowanie obiekty różnych klas jednakowo, niestety "nie widzę" tego.
Mam 2 klasy:
public class Human implements Functions {
String name;
public Human(String imie){
this.name = imie;
}
@Override
public void talk() {
}
}
public class Animal implements Functions {
String name;
public Animal(String imie){
this.name = imie;
}
@Override
public void talk() {
}
}
i interfes
public interface Functions {
void talk();
}
więc teraz próbuję na wszystkich obiektach wywołac funkcję talk()
ArrayList<Object> beings = new ArrayList<>();
beings.add(new Human("imie1"));
beings.add(new Animal("imie2"));
init(beings);
private void init(ArrayList objects) {
for (int i = 0; i < objects.size(); i++) {
objects.get(i).talk(); <- IDE podkreśla błąd (Cannot resolve method task())
}
}
pytanie: czego mi brakuje lub co jest źle ? Proszę o wyjaśnienie.