1
resposta

O que muda colocar uma Classe mais generica

Sei que o assunto é mais sobre herança, mas qual o beneficio em colocar uma classe mais generica ao criar uma nova referência?

Exemplo:

Object cliente = new Cliente(); ou Cliente cliente = new Cliente();

O que muda nos 2 dois casos? qual o beneficio em colocar Object ou qualquer outra classe acima da classe cliente?

1 resposta

Olá Jamili, tudo bem com você?

Peço desculpas pela demora em obter um retorno.

Ao utilizar uma classe mais genérica, como Object, ao criar uma nova referência em Java, você ganha flexibilidade e reutilização de código. Essa abordagem permite que a referência aponte para qualquer tipo de objeto, tornando o código mais genérico e capaz de lidar com diferentes tipos de objetos. No entanto, você perde o acesso direto aos métodos e propriedades específicos da classe mais especializada, necessitando fazer conversões de tipo quando for necessário acessar esses membros específicos. Por exemplo, caso quiséssemos instanciar Object cliente = new Cliente();, não conseguiríamos acessar os métodos da classe Cliente diretamente, precisaríamos o fazer conversões de tipo para acessar esses métodos, da seguinte forma Cliente clienteEspecifico = (Cliente) cliente

Por outro lado, ao utilizar uma classe mais específica, como Cliente (Cliente cliente = new Cliente()), ao criar a nova referência, você limita a referência a apontar apenas para objetos daquela classe ou suas subclasses. Isso garante o acesso direto aos métodos e propriedades específicos da classe, mas restringe a flexibilidade de lidar com outros tipos de objetos.

A escolha entre uma classe genérica ou específica depende da necessidade de flexibilidade e reutilização do código em comparação com o acesso direto aos recursos específicos da classe em questão.

De forma geral, a recomendação é usar o tipo mais específico ao declarar uma referência em Java. Isso proporciona código mais legível, melhor desempenho e segurança em tempo de compilação. O uso de tipos genéricos como o Object pode ser útil em situações que exigem manipulação genérica de objetos ou integração com bibliotecas específicas. É necessário avaliar cada caso individualmente para o uso adequado.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software