github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/Profesional/Structures/Interface.go (about) 1 package main 2 3 import "fmt" 4 5 type Animal interface { 6 mover() string 7 } 8 9 type Perro struct {} 10 type Pez struct {} 11 type Pajaro struct {} 12 13 func (* Perro) mover() string { 14 return "Soy perro y camino" 15 } 16 17 func (* Pez) mover() string { 18 return "Soy pez y nado" 19 } 20 21 func (* Pajaro) mover() string { 22 return "Soy pajaro y vuelo" 23 } 24 25 func moverAnimal(animal Animal) { 26 fmt.Println(animal.mover()) 27 } 28 29 func main() { 30 31 perro := Perro{} 32 moverAnimal(&perro) 33 34 pez := Pez{} 35 moverAnimal(&pez) 36 37 pajaro := Pajaro{} 38 moverAnimal(&pajaro) 39 }