Acesso protegido Java não está funcionando

No java, há três níveis de acesso:

Público - Aberto ao mundoParticular - Aberto apenas para a turmaProtegido - Aberto apenas para a classe e suas subclasses (herança).

Então, por que o compilador java permite que isso aconteça?

TestBlah.java:

public class TestBlah {

    public static void main(String[] args) {
        Blah a = new Blah("Blah");
        Bloo b = new Bloo("Bloo");
        System.out.println(a.getMessage());
        System.out.println(b.getMessage()); //Works
        System.out.println(a.testing);
        System.out.println(b.testing); //Works
    }
}

Blah.java:

public class Blah {
    protected String message;

    public Blah(String msg) {
        this.message = msg;
    }

    protected String getMessage(){
        return(this.message);
    }   
}

Bloo.java:

public class Bloo extends Blah {
    public Bloo(String testing) {
        super(testing);
    }
}

questionAnswers(5)

yourAnswerToTheQuestion