Реализация интерфейса Java

Я изучаю Java, Spring и POI. Я вижу https://poi.apache.org/spreadsheet/quick-guide.html и следуйте ему.
В «Новой рабочей книге» существует следующий код.

Workbook wb = new XSSFWorkbook();
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
wb.write(fileOut);
fileOut.close();

Запустив приведенный выше код, он работает хорошо.
Я обнаружил, что «Рабочая книга» — это НЕ класс, НО интерфейс. Я узнал, что интерфейс ДОЛЖЕН быть реализован. Но я НЕ МОГУ найти реализацию. Где это реализовано? Что я должен изучить, чтобы понять это?


person blank_popup    schedule 13.01.2016    source источник
comment
XSSFWorkbook реализует Workbook   -  person George Mulligan    schedule 13.01.2016
comment
Если вы используете IDE, например Eclipse или IntelliJ, вы можете поместить курсор на XSSFWorkbook и нажать F3 или щелкнуть правой кнопкой мыши, чтобы перейти к определению класса. Если вы используете только простой редактор и командную строку, вы можете запустить поиск в своей файловой системе для XSSFWorkbook.java и/или XSSFWorkbook.class, чтобы найти реализацию.   -  person Raul Santelices    schedule 13.01.2016
comment
@Raul Santelices Спасибо за помощь!   -  person blank_popup    schedule 13.01.2016


Ответы (2)


Официальное руководство Oracle по интерфейсам: https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

person Alejandro Goñi    schedule 13.01.2016

Это экземпляр интерфейса.
Подробности: Использование интерфейса в качестве типа

Короче говоря, вы можете создать экземпляр интерфейса.

Случай 1: для анонимного класса .

Workbook wb = new Workbook() {
// Some implementation
}

Случай 2. Используйте его как тип. (Да! Ваш случай!)

Workbook wb = new XSSFWorkbook();

см. также: Шаблон разработки стратегии в Java. Это очень полезная идея.

person Stanley Ko    schedule 13.01.2016