Conversão de char para byte em Java

Eu tenho testado o elenco de char e passei por isso:

public class Test {
    public static void main(String a[]) {
        final byte b1 = 1;
        byte b2 = 1;
        char c = 2;

        c = b1; // 1- Working fine
        c = b2; // 2 -Compilation error
    }
}

Alguém pode explicar por que está funcionando bem em 1 quando adicionei uma final ao byte?

questionAnswers(3)

yourAnswerToTheQuestion