Я довольно новичок в Java и застрял с этим, пожалуйста.Ну, я знаю, что интерфейс «предоставляет» только абстрактные методы, которые будут реализованы конкретными подклассами.Надеюсь, что это правда (по крайней мере).Поэтому я изучал пример кода jxl api для написания и чтения файла Excel и пришел к следующему пункту:
workbook = Workbook.createWorkbook(new File("/home/me/workspace/files/output.xls"));
WritableSheet sheet = workbook.createSheet("first sheet", 0);
То есть объект книги ранее был создан и является объектом WritableWorkbook.Я создаю книгу, используя статический метод, предоставляемый Workbook, который является суперклассом WritableWorkbook.И до этого я там.Но тогда, что я делаю во второй инструкции?Лист представляет собой «WritableSheet», но это интерфейс!И, видя API, нет классов реализации.И «WritableSheet» является подынтерфейсом другого интерфейса, который называется «Sheet».Оба интерфейса.Но я думал, что не смогу создать объект из интерфейса.Тогда, используя метод createSheet (предоставляемый WritableWorkbook), кажется, я создаю WritableSheet.Затем в примере кода я прихожу к этому:
Label lblNome = new Label(0, 1, "Nome:");
sheet.addCell(lblNome);
Нет проблем, первая строка, я создаю новый элемент, метку (это текстовая ячейка);а второй?Опять же, addCell - это метод интерфейса, который видит API!в то время как лист был предыдущая реализация чего?Из интерфейса мне кажется.И какой метод они используют, если интерфейсы предоставляют абстрактный метод?
Пожалуйста, объясните мне это?В конце код работает, но не ясно, как работают эти интерфейсы (Sheet и WritableSheet).
Спасибо