Java Zeichen zu Byte Casting

Ich habe das Char-Casting getestet und habe Folgendes durchgearbeitet:

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
    }
}

Kann jemand erklären, warum es in 1 gut funktioniert, wenn ich dem Byte ein Finale hinzugefügt habe?