Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Classe abstrata X Construtor private

Olá pessoal,

Estava dando uma olhada nas classes do Java e percebi que algumas como, System, possuem construtor privado e são final, evitando assim uma instância e extensão da classe e disponibilizando aos devs apenas a possibilidade de trabalhar com os métodos estáticos. Gostaria de saber a diferença dessa abordagem em relação ao uso de classe abstrata. Só consegui pensar que usando abstract o dev tem a intenção e promove a opção de aquela classe ser estendida.

Obrigado.

2 respostas
solução!

Bem, em resumo seria:

Classe abstrata: não é possível instanciar diretamente uma classe abstrata, mas pode-se criar classes filhas e instancia-las.

Construtor private: não é possível instanciar nem herdar, já que o construtor é privado à classe.

Ou seja, o uso depende da necessidade. No caso do System, não faria sentido a instancia nem a herança do mesmo, por isso o construtor padrão se encaixou melhor.

Entendi. Muito obrigado.