Sobes.tech
Junior — Middle

Quais são as características comuns que unem classes e interfaces na programação orientada a objetos?

sobes.tech IA

Resposta da IA

As classes e interfaces na programação orientada a objetos partilham várias características comuns:

  • Abstração: Ambos permitem descrever tipos de dados abstratos, ocultando detalhes de implementação.
  • Definição de comportamento: Tanto as classes como as interfaces definem um conjunto de métodos que devem ser implementados.
  • Polimorfismo: Através de classes e interfaces, é possível implementar um comportamento polimórfico, permitindo usar objetos de diferentes tipos de forma uniforme.
  • Tipagem: Ambos servem para definir tipos que podem ser usados para declarar variáveis e parâmetros de funções.

Em Go, as interfaces definem um conjunto de métodos, e não há uma classe propriamente dita, mas estruturas com métodos desempenham o papel de classes. As interfaces descrevem o comportamento, e as estruturas contêm os dados e a implementação.

Exemplo em Go:

// Interface
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// Estrutura com método que implementa a interface
 type File struct {}

 func (f File) Read(p []byte) (n int, err error) {
     // implementação
     return 0, nil
 }

 func main() {
     var r Reader = File{}
     r.Read(nil)
 }