Как дополнение к другим ответам:
Многие классы реализуют интерфейсы, такие как Iterator
, как закрытый внутренний класс, а затем возвращают экземпляры этого скрытого класса всякий раз, когда запрашивается экземпляр.Вы можете прочитать исходный код платформы Collections, если вам нужен пример.
Основным преимуществом таких действий является то, что вы скрываете детали реализации.Например, пользователь List
не обязан знать, какой конкретный класс возвращается при вызове someList.iterator ()
, и при этом ему не нужно знать, сколько различных реализаций Iteraor
доступно в платформе Collections.Это позволяет разработчикам этой платформы создавать столько реализаций, сколько необходимо, исходя из их потребностей (конкретность, эффективность и т. Д.), И вам, как пользователю этой среды, не нужно изучать миллионы классов.