go学习笔记-day19

Go 语言接口

Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

package main

import (
    "fmt"
)

type Phone interface {
    call() // 共性的方法
}

type NokiaPhone struct {
}

// 结构体NokiaPhone实现了 call 方法 func (nokiaPhone NokiaPhone) call() { fmt.Println("I am Nokia, I can call you!") } type IPhone struct { } // 结构体IPhone实现了 call 方法 func (iPhone IPhone) call() { fmt.Println("I am iPhone, I can call you!") } func main() { var phone Phone phone = new(NokiaPhone) // 实现了方法,就是实现了这个接口 phone.call() phone = new(IPhone) phone.call()
}

  

注意:对数据类型-接口的理解,把所有的具有共性的方法定义在一起,像是对一个方法的抽象。

定义一个动物接口: Animal  (动物的共享方法可能是,会叫,会吃,会跑等)

定义一个结构体: Dog (小狗 会叫,会吃,会跑等)

再定义一个结构体: Cat (小猫 会叫, 会吃,会跑等)

现在,根据需求,小动物们的叫声,此时就可以把会叫这个方法抽象到 interface 里,而动物们的其他技能就可以保密

(interface 更多的是提供了对外的一种数据范围,保证信息的单一性)

 

posted @ 2021-12-16 15:38  铁塔  阅读(23)  评论(0编辑  收藏  举报