В Eclipse, почему отсутствуют методы интерфейса, показанные в дочернем классе, а не в родительском классе?
Допустим, у меня простой интерфейс:
public interface ISpeaks {
String talk();
}
Затем у меня реализован этот интерфейс для расширенного класса:
public abstract class Cat implements ISpeaks {
// forgot to implement talk()
}
public class Tiger extends Cat {
// also didn't implement talk()
}
Затмение жалуется, что Тигру не хватает метода talk () (точная ошибка: The type Tiger must implement the inherited abstract method ISpeaks.talk()
). Я ожидаю, что это скажет мне, что Cat отсутствует talk (), потому что Cat - это класс, который явно реализует интерфейс. Не Тигр.
Это определенно "бух?" момент для меня, потому что я нахожусь в Spring / Hibernate и всякий раз, когда я добавляю метод к своим интерфейсам DAO, я получаю такую ошибку для каждого тестового примера с поддержкой базы данных, в котором отсутствует метод - вместо того, чтобы получить одну ошибку на базовый метод тестирования, который издевается над моими DAO.