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

本文继续探讨Go语言的接口使用,介绍如何实现多个接口,并通过动物、鸟的例子说明为何将接口方法独立,避免不必要行为的强制要求。总结指出,在Go中实现接口只需覆盖接口所有方法。
摘要由CSDN通过智能技术生成
扩展

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

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

背景:

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

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

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()
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值