Por que não posso adicionar dois bytes e obter um int e posso adicionar dois bytes finais obter um 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);
    }
}

Se o resultado de uma expressão envolvendo algo int-sized ou menor for sempre um int, mesmo que a soma de dois bytes caiba em um byte.

Por que isso acontece quando adicionamos dois bytes finais que se encaixam em um byte? Não há erro no compilador.

questionAnswers(2)

yourAnswerToTheQuestion