Golang数据类型-接口(九)

接口

基本语法

type 接口名 interface {
	method1(参数列表) 返回值列表
	method2(参数列表) 返回值列表
	......
}
  • interface类型可以定义一组方法,但是这些不需要实现。并且interface不能包含任何变量。到某个自定义类型(比如结构体phone)要使用的时候,在根据具体情况把方法写出来。
  • 空接口interface{}没有任何方法,所以所有的类型都实现了空接口。即我们可以把任何变量赋值给空接口
  • 接口里的所有方法都没有方法体,即接口的方法都是没有实现的方法。接口体现了程序设计的多态和高内聚低耦合的思想。
  • Golang中的接口,不需要显式的实现。只要一个变量,含有接口类型的所有方法,那么这个变量就实现这个接口。

接口快速入门案例:

package main
import "fmt"

type Usb interface {
	//声明了2个没有实现的方法
	Start()
	Stop()
}

type Phone struct{}
//让Phone实现Usb接口方法
func (p Phone) Start() {
	fmt.Println("手机开始工作......")
}
func (p Phone) Stop() {
	fmt.Println("手机停止工作......")
}

type Camera struct{}
//让Camera实现Usb接口方法
func (c Camera) Start() {
	fmt.Println("相机开始工作......")
}
func (c Camera) Stop() {
	fmt.Println("相机停止工作......")
}

//计算机实现Usb接口方法
type Computer struct{}
//编写一个working方法,接收一个Usb类型的变量类型
//专业属于叫:实现了Usb接口(所谓实现Usb接口,就是指变量包含了Usb接口声明的所有方法)
func (c Computer) Working(usb Usb) {
	//通过usb接口变量调用start和stop方法
	usb.Start()
	usb.Stop()
}

func main(){
	//测试:先创建结构体变量
	computer := Computer{}
	phone := Phone{}
	camera := Camera{}

	//关键点
	computer.Working(phone)  //相当于把手机通过usb接口接入计算机
	computer.Working(camera) //相当于把相机通过usb接口接入计算机
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值