代码实例package main
import "fmt"
//定义一个动物接口
type IAnimal interface {
Move()
Eat()
}
//定义个青蛙结构体
type Frog struct {
Name string
}
func (frog *Frog) Move() {
fmt.Println(frog.Name, "可以跳着移动")
}
func (frog *Frog) Eat() {
fmt.Println(frog.Name, "吃害虫")
}
// 上面Frog 实现了IAnimal接口的所有方法,那么接口IAnimal就可以指向Frog实例对象
//定义个青蛙结构体
type Dog struct {
Name string
}
func (dog *Dog) Move() {
fmt.Println(dog.Name, "可以奔跑")
}
func (dog *Dog) Eat() {
fmt.Println(dog.Name, "吃骨头")
}
//上面Frog 实现了IAnimal接口的所有方法,那么接口IAnimal就可以指向Frog实例对象
func AnimalShow(animal IAnimal) {
animal.Move()
animal.Eat()
}
func main() {
var an IAnimal
an = &Frog{"青蛙"}
AnimalShow(an)
an = &Dog{"狗"}
AnimalShow(an)
}