¿Por qué no puedo agregar dos bytes y obtener un int y puedo agregar dos bytes finales para obtener un byte?

public class Java{
    public static void main(String[] args){
        final byte x = 1;
        final byte y = 2;
        byte z = x + y;//ok
        System.out.println(z);

        byte a = 1;
        byte b = 2;
        byte c = a + b; //Compiler error
        System.out.println(c);
    }
}

Si el resultado de una expresión que involucre algo de tamaño int o más pequeño es siempre un int, incluso si la suma de dos bytes cabe en un byte.

¿Por qué sucede cuando agregamos dos bytes finales que encajan en un byte? No hay error de compilación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta