У меня есть интерфейс и класс, реализующий интерфейс, подобный следующему:
public interface DocumentDAO<T>{
public long insert (T doc);
}
public class PostgreSQLDocumentDAO implements DocumentDAO<Document>{
public long insert(Document doc){}
protected void insertDocument(Document doc){}
}
Я хочу переопределить метод insert для PostgreSQLDocumentDAO
, изменив параметр с Document до Страница , где Страница - это класс, который расширяет Документ .
Я хочу что-то вроде этого:
public class PostgreSQLPageDAO extends PostgreSQLDocumentDAO{
public long insert(Page doc){
super.insertDocument(page);
//specific implementation goes here
}
}
Как мне это получить?
ОБНОВЛЕНИЕ: Приведенный выше код неверен, потому что класс с именем Inserter
использует интерфейс DocumentDAO
.Когда он вызывает метод insert , даже если это объект PostgreSQLPageDAO , он вызывает метод insert для вставки Document , поскольку этот метод наследуется.
Я хочу сделать так, чтобы когда класс Inserter
вызывал метод insert , он использовал метод, который вставляет page .Таким образом, я думаю, что мне нужно переопределить insert (Document doc)
с PostgreSQLDocumentDAO
.