Go语言的接口和实现类初探(二)

扩展

上一篇讲了实现一个接口里的全部方法。

如果实现多个接口,也是很简单的,同理把他的方法实现了就行。

背景:

有一个动物的接口,他有吃和跑的动作,突然来一只鸟的动物,呀,它还会飞。

如果我们修改接口动物加上飞的动作,这样会让狗也要飞了。所以,我们把接口的方法都单独另出来。

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实现接口只要实现类实现该接口里的全部方法,我们称该实现类实现该接口。



你可能感兴趣的:(Go语言学习日记,golang,接口,实现类)