Por que duas classes públicas não podem ser definidas em um arquivo em java? [duplicado]

Esta questão já tem uma resposta aqui:

Por que cada classe pública está em um arquivo separado? 12 respostas

Por que a classe B não pode se tornar pública? Como posso usar a classe em outras classes? É melhor defini-lo dentro dos Cons ?!

   //    public class B { why not?

   class B {
        int x;  
        B (int n) {
            x=n;
            System.out.println("constructor 'B (int n)' called!");
        }
    }

    public class Cons { 
        public static void main(String[] args) {B b = new B();}
    }

questionAnswers(3)

yourAnswerToTheQuestion