golang 定义接口

一、定义接口语法

type 接口名 interface {
    method1(参数列表) 返回值列表
    method2(参数列表) 返回值列表
}   
  1. 接口中所有方法都没有方法体
  2. 接口中不能包含任何变量
  3. golang中没有implements 关键字,因此不需要显示的去实现接口;在golang中只要一个变量,包含了接口类型的所有方法,那么这个变量就实现了这个接口。

二、案例

package main

import (
    "fmt"
)

type Usb interface{
    Connect()
    DisConnect()
}

type Phone struct{
}

/*
*  Phone实现了Usb 接口(是指实现了Usb接口的所有方法)
*/
func(p Phone) Connect(){
    fmt.Println("手机连接...")
}

func(p Phone) DisConnect(){
    fmt.Println("手机断开连接...")
}

type Camera struct{
}

func(c Camera) Connect(){
    fmt.Println("相机连接...")
}

func(c Camera) DisConnect(){
    fmt.Println("相机断开连接...")
}

type  Computer struct{
}

func(c Computer) Working(u Usb){
    u.Connect()
    u.DisConnect()
}

func main(){
    phone := Phone{}
    camera := Camera{}
    computer := Computer{}
    computer.Working(phone)
    computer.Working(camera)
}

运行结果如下:

 

posted @ 2024-01-11 22:43  远洪  阅读(39)  评论(0编辑  收藏  举报