扩展
上一篇讲了实现一个接口里的全部方法。
如果实现多个接口,也是很简单的,同理把他的方法实现了就行。
背景:
有一个动物的接口,他有吃和跑的动作,突然来一只鸟的动物,呀,它还会飞。
如果我们修改接口动物加上飞的动作,这样会让狗也要飞了。所以,我们把接口的方法都单独另出来。
package main import ( "fmt" ) //飞的接口 type IFly interface { Fly() } //吃的接口 type IEat interface { Eat() } //跑的接口 type IRun interface { Run() } //狗的实现类 type Dog struct { name string } func (dog *Dog) Eat() { fmt.Println(dog.name + " eat") } func (dog *Dog) Run() { fmt.Println(dog.name + " run") } //鸟的实现类 type Bird struct { name string } func (bird *Bird) Fly() { fmt.Println(bird.name + " fly") } func (bird *Bird) Eat() { fmt.Println(bird.name + " eat") } func main() { var eat IEat = &Dog{"Dog"} eat.Eat() eat = &Bird{"Bird"} eat.Eat() var run IRun = &Dog{"Dog"} run.Run() var fly IFly = &Bird{"Bird"} fly.Fly() }运行结果
总结:
golang实现接口只要实现类实现该接口里的全部方法,我们称该实现类实现该接口。
有疑问加站长微信联系(非本文作者)