Инициализация интерфейса?

В текущей проблеме, с которой я столкнулся ( печать файла на физическом принтере на Java ), я прогонял код, как сумасшедший, пытаясь пожирать любую полезную пропущенную информацию из javadoc каждого используемого класса.

Я взял довольно много кода из предыдущих вопросов, так что было немало того, что я не писал сам. Проблема, которую я заметил, заключается в том, что код, который я взял, инициализирует объект, скажем «SimpleDoc», который реализует интерфейс (Doc), и назначает его этому интерфейсу ?!

Маленький фрагмент кода:

Doc mydoc = new SimpleDoc(textStream, flavor, null);

Насколько я понял, в java мы создаем объекты. Я знаком с наследованием и знаком с уловкой использования интерфейсов, позволяющей классу «наследовать» несколько суперклассов.

Но это просто неправильно. Вы можете создать класс, реализующий интерфейс, и это меня устраивает. Но что здесь происходит, когда интерфейс создается, а объект сводится к его интерфейсу? К чему я обращаюсь, если точно ссылаюсь на mydoc?

9
задан Community 23 May 2017 в 10:31
поделиться