Авто-расширение, авто-кастом и авто-бокс - это три разных процесса преобразования типов данных в Java. Авто-расширение (Widening) - это автоматическое преобразование значения одного примитивного типа данных в другой примитивный тип с большим диапазоном значений. Например, int может быть автоматически расширен до типа long. int i = 10;
long l = i; // Авто-расширение int до long Здесь мы создали переменную типа int и затем присвоили ее переменной типа long. Компилятор автоматически расширил значение типа int до соответствующего значения типа long.
Авто-каст (Upcasting) - это автоматическое преобразование объекта класса-наследника к его классу-предку. Например, Dog может быть автоматически приведен к типу Animal.
Animal animal = new Dog(); Здесь мы создали объект класса Dog, который затем автоматически был приведен к типу Animal. Это возможно потому, что Dog является подклассом класса Animal. Авто-боксинг (Autoboxing) - это автоматическое преобразование значения примитивного типа