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

Libra412 · · 4638 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

扩展

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

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

背景:

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

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

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




有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:Libra412

查看原文:Go语言的接口和实现类初探(二)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4638 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传