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

Dúvida quanto a implementação de um método de interface e em uma super classe

Prezados(as),

Entendi que a super classe é a mãe os quais as classes filhas herdam seus atributos e métodos, podendo ser acessados diretamente, e, que a interface é um contrato que eu faço com a classe que obrigatoriamente deve ter fazer o que nela estipular.

Dito isso, ainda tenho dúvida de como usar a interface ou método, talvez seja falta de entendimento, mas, no caso da classificação, eu não poderia criar dentro da super classe título um método classificação que todos as suas filhas teriam que a implementar, a sobrescrevendo e tornando desnecessária a interface ?

A sobrescrita no caso tornaria individualmente cada caso, o que resultaria na inutilidade da interface?

É meio que ma duvida de quando utilizar uma ou outra.

Nada mais.

1 resposta
solução!

Olá, Matheus!

Você está correto ao dizer que uma superclasse é uma "mãe" de onde as subclasses herdam atributos e métodos, e que uma interface é como um contrato que a classe que a implementa deve cumprir. No entanto, a escolha entre usar uma superclasse ou uma interface não é necessariamente uma questão de uma substituir a outra, mas sim de qual se encaixa melhor no design do seu programa.

Vamos pensar no seu exemplo de criar um método de classificação na superclasse que todas as subclasses teriam que implementar. Isso é totalmente possível, mas tem algumas implicações. Primeiro, isso significa que todas as subclasses da superclasse teriam que ter uma classificação. Se isso faz sentido para o seu programa, ótimo! No entanto, se houver subclasses que não deveriam ter uma classificação, então isso seria um problema. Além disso, se você quisesse adicionar a classificação a uma classe que não é uma subclasse da superclasse, você não poderia.

Agora, vamos pensar na interface. A interface permite que você adicione a classificação a qualquer classe que a implemente, não apenas às subclasses de uma superclasse específica. Isso oferece mais flexibilidade. Além disso, uma classe pode implementar várias interfaces, mas só pode herdar de uma superclasse. Então, se você quisesse adicionar mais comportamentos que não estão necessariamente relacionados (como classificação e, digamos, coloração), você poderia fazer isso com interfaces, mas não com uma superclasse.

Em resumo, a escolha entre usar uma superclasse ou uma interface depende do design do seu programa e do que você quer alcançar. Se um comportamento deve ser compartilhado por todas as subclasses de uma superclasse, então faz sentido colocar esse comportamento na superclasse. Se um comportamento deve ser compartilhado por classes que não têm uma superclasse comum, ou se uma classe precisa ter vários comportamentos que não estão necessariamente relacionados, então faz sentido usar uma ou mais interfaces.

Lembre-se, a orientação a objetos é uma ferramenta poderosa para organizar o seu código, mas a chave é usá-la de uma maneira que faça sentido para o seu problema.

Espero ter ajudado e bons estudos!