Junior — Middle
¿Se puede implementar un mecanismo de herencia en el lenguaje Go?
sobes.tech AI
Respuesta de la IA
En el lenguaje Go no existe herencia clásica, como en lenguajes orientados a objetos como Java o C++. En su lugar, Go utiliza composición y embebido (embedding) de estructuras para reutilizar código y ampliar funcionalidades.
Por ejemplo, se puede incrustar una estructura en otra, y los métodos de la estructura incrustada estarán disponibles a través de la estructura externa:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "dice")
}
type Dog struct {
Animal // embebido de la estructura Animal
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // llamará al método Speak de la estructura Animal
}
De esta forma, en Go se logra un comportamiento similar a la herencia, pero se implementa mediante composición, lo que favorece un diseño más flexible y sencillo.