Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Construtor privado: em um exercício compila e em outro não compila

Escolha a opção adequada ao tentar compilar e rodar o arquivo a seguir:

class B { private B() {} static B B(String s) { return new B(); } } class A extends B { public static void main(String[] args) { B b = B.B("t"); } } Alternativa correta Não compila. O código não compila pois não existe construtor de B ao qual A tenha acesso para herdar do mesmo.

** pergunta*

Não entendi: o código do exercício anterior é o mesmo e o construtor está privado da mesma forma. Porque no código anterior compilava e esse não compila? Em ambos os casos o construtor de B está privado, nao entendi o problema do acesso ao construtor...

* exercicio anterior que dizia que compilava

Escolha a opção adequada ao tentar compilar e rodar o arquivo a seguir:

class B { private B() {} static B B(String s) { return new B(); } } class A { public static void main(String[] args) { B b = B.B("t"); } } Alternativa correta Compila e não imprime nada.

1 resposta
solução!

Boa noite, Vinícius! Como vai?

A diferença entre os códigos dos exercícios é que no primeiro a classe A não herda de B e no segundo herda, por isso a diferença nos resultados.

Aprendizado para a vida: Quando for postar código, utilize o botão "inserir código" e cole no lugar indicado para que o código saia com a formatação correta e facilite a sua análise e de quem for te ajudar.

Grande abraço e bons estudos!