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

Sobre Traits

Eu tenho as entidades Fornecedor e Cliente, ambas estendem a classe Empresa, pois as duas possuem os mesmos campos.

Então ficau assim:

Class Empresa
{
 // atributos e métodos
}

Class Fornecedor extends Empresa
{

}

Class Cliente extends Empresa
{

}

A classe Cliente deverá estender também uma outra classe chamada OS (ordem de serviço).

Aí pensei em fazer com Trait. Mas fiquei com dúvida. Nas aulas vimos que eram apenas partes de código. E a entidade OS é uma classe com atributos e métodos.

É certo usar Trait neste caso? Se bem que eu nem sei se dá para fazer de outra forma, tendo em vista que a classe Cliente já estende Empresa.

3 respostas

Flavio, acho que você não entendeu bem o conceito de Herança.

Quando uma clsase estende outra, você diz que ela É aquilo.

Ex.: Se a classe Gato estende a classe Animal, então um Gato é um Animal.

No seu caso você está dizendo que Cliente é uma Empresa e também deveria ser uma ordem de serviço, o que não faz o menor sentido.

https://blog.caelum.com.br/como-nao-aprender-orientacao-a-objetos-heranca/amp/

Hum, verdade. Faz total sentido. Se uma classe estende outra, é como se fosse ela mesma. Por isso não faz o menor sentido Cliente ser uma ordem de serviço também.

Nossa, vendo agora parece tão óbvio :) Obrigado pela correção.

Mas veja. Embora eu não tenha sido muito feliz no exemplo, deu para entender minha dúvida? Minha intenção era saber como uma classe estende duas classes.

Eu não vou me arriscar a dar outro exemplo. Então poderia me dar um, por favor?

Pelo que entendi do curso, podemos usar Traits. Só que até onde eu entendi, as Taits têm apenas códigos mais simples, não uma estrutura completa de uma classe.

solução!

Então, Flávio. O momento correto para usar Traits não existe. Você deve conhecer a funcionalidade da ferramenta para que quando uma necessidade sugir, você saiba se essa ferramenta resolve o problema ou não.

:-)

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