Junior — Middle
¿Cómo se implementa el mecanismo de herencia en el lenguaje Go y cuál es su implementación?
sobes.tech AI
Respuesta de la IA
En el lenguaje Go no existe herencia clásica, como en los lenguajes orientados a objetos. En su lugar, se utilizan composición e interfaces.
-
Composición: En lugar de heredar estructuras, se puede incluir una estructura en otra. Esto permite "incorporar" comportamiento y datos.
-
Interfaces: Go usa interfaces para describir comportamientos. Cualquier estructura que implemente los métodos de una interfaz se considera su implementación.
Ejemplo de composición:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "dice")
}
type Dog struct {
Animal // inclusión de la estructura Animal
}
func main() {
d := Dog{Animal{Name: "Boby"}}
d.Speak() // llamará al método Animal
}
De esta forma, Go fomenta el uso de composición e interfaces en lugar de herencia clásica.