Да in
- это имя объекта типа InputStream
(который является абстрактным классом). Может быть много классов, расширяющих этот абстрактный класс (включая FileInputStream
), каждый из которых реализует требуемые компонентыInputStream
.
Вы можете создать конкретный объект того типа класса, который вы используете, но с помощью абстрактной версии или интерфейса - вы уверены, что класс имеет определенный набор функций, ноВы можете легко переключать реальную реализацию без изменения кода.(Наследование в действии!)
Например, приведенная выше строка в будущем может вместо этого использовать:
InputStream in = new SocketInputStream();
Для получения дополнительной информации прочитайте фон InputStream .