一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!


接口可以通过嵌套,创建新的接口。例如:飞鱼,既可以飞,又可以游泳。我们创建一个飞Fly接口,创建一个游泳接口Swim,飞鱼接口由这两个接口组成。

飞Fly接口

type Flyer interface {
    fly()
}

创建Swimmer接口

type Swimmer interface {
    swim()
}

组合一个接口FlyFish

type FlyFish interface {
    Flyer
    Swimmer
}

创建一个结构体Fish

type Fish struct {
}

实现这个组合接口

func (fish Fish) fly() {
    fmt.Println("fly...")
}

func (fish Fish) swim() {
    fmt.Println("swim...")
}

测试

package main

import "fmt"

type Flyer interface {
    fly()
}

type Swimmer interface {
    swim()
}

type FlyFish interface {
    Flyer
    Swimmer
}

type Fish struct {
}

func (fish Fish) fly() {
    fmt.Println("fly...")
}

func (fish Fish) swim() {
    fmt.Println("swim...")
}

func main() {
    var ff FlyFish
    ff = Fish{}
    ff.fly()
    ff.swim()
}

运行结果

[Running] go run "d:\SynologyDrive\软件开发\go\golang入门到项目实战\goproject\360duote.com\pro01\test.go"
fly...
swim...