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)
}