Go语言接口(interface)简单应用

go语言中的多态特性主要是通过接口来实现的,例如在现实世界中可以把手机,相机,U盘等插到USB标准接口上,而不用担心该USB接口是为哪种设备提供的,原因是商家在设计USB接口时都遵守了一个USB标准,如尺寸,排线等,如果电脑将USB作为输入接口,那么只要是能够插到该接口的设备理论上都可以连接电脑进行工作。下面通过Go语言实现这种场景:

package main

import (
	"fmt"
)

//定义一个USB接口,该接口提供两个方法
type USB interface {
	start()
	stop()
}

//定义一个手机的结构体
type phone struct {

}

//让手机实现USB接口中的两个方法,且必须都要实现
func (p phone) start (){
	fmt.Println("phone start")
}

func (p phone) stop(){
	fmt.Println("phone stop")
}

//定义一个相机结构体
type camera struct {

}

//让相机也实现USB接口中的两个方法,且必须都要实现
func (c camera) start () {
	fmt.Println("camera start")
}

func (c camera) stop (){
	fmt.Println("camera stop")
}

//定义一个电脑结构体
type computer struct {

}

//定义一个电脑的成员方法,该方法将USB作为输入接口,并且该方法启动USB接口中的两个方法,不是必须都要将两个启动
func (c computer) working (u USB){
	u.start()
	u.stop()
}

func main(){

	phone := phone{}
	camera := camera{}
	computer := computer{}
	//只要是实现了USB接口(所谓实现USB接口就是实现了USB接口中定义的所有方法)的设备,都可以通过电脑启动工作
	computer.working(phone)
	computer.working(camera)

}

执行结果:

phone start
phone stop
camera start
camera stop
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值