В Java 10 или + мы можем использовать ключевое слово var для объявления. При инициализации компилятор определяет тип.
Что происходит, когда экземпляр класса, который я создаю и присваиваю переменной, объявленной с помощью var, является реализацией интерфейса? Какой тип будет выведен: интерфейс или реализация?
Подробнее здесь: https://stackoverflow.com/questions/630 ... rd-in-java