接口基础知识分享

接口基础知识分享

一、接口的定义

type 接口名 interface {
     
      方法名1(参数列表)返回值列表
      方法名2(参数列表)返回值列表
}

二、接口的形象例子

现实生活中Usb接口就是一个形象的接口例子,例如手机、相机、U盘这些按照统一规格设计Usb在插头,插入Usb接口后有不同的反应

package main 
import (
	"fmt"
)
type Usb interface{
     
	start() //开始工作
	stop()  //结束工作
}
type Computer struct{
     

} //定义电脑U盘插口
type phone struct{
     
	Name string
}
type U struct{
     
	Name string
} //定义手机以及U盘对象
func (this *phone) start(){
     
	fmt.Println("我是手机")
}
func (this *phone) stop(){
     
	fmt.Println("再见")
}
//手机已经实现了接口
func (this *U) start(){
     
	fmt.Println("我是U盘")
}
func (this *U) stop(){
     
	fmt.Println("再见")
}
//U盘已经实现了接口
func (this *Computer) Working(usb Usb){
     
	usb.start()
	usb.stop()
}
func main(){
     
   com:=&Computer{
     }
   u:=&U{
     }
   p:=&phone{
     }
   com.Working(u)     //模拟U盘插入
   com.Working(p)     //模拟手机插入
}

三、接口与继承的区别

继承解决的是代码复用性,接口是增加功能,并且不破坏继承性

四、注意事项

1、接口的方法都没有方法体;是引用类型;
2、如果一个类型将接口的所有方法都实现,就说明这个类型实现了这个接口;
3)接口中不能拥有任何变量;
4)一个接口可以继承多个接口,实现该接口必须实现所有接口的方法;
5)空接口没有任何方法,任何类型都实现了空接口,任何变量都可以赋值给空接口;

五、接口体现多态

上述Usb接口中

你可能感兴趣的:(Go)