Go语言基础语法2 | 青训营 ;

36 阅读1分钟

一.接口(interface)

接口是一种类型,一种抽象的类型

(1)接口的写法

    /*1. 定义接口 */  
type interface_name interface {  
   method_name1 [return_type]  
   method_name2 [return_type]  
   method_name3 [return_type]  
   ...  
   method_namen [return_type]  
}
    /*2. 定义结构体 */  
    type struct_name struct {  
       /* variables */  
    }
    /*3. 实现接口方法 */  
    func (struct_name_variable struct_name) method_name1() [return_type] {  
       /* 方法实现 */  
    }
   

(2)接口的实例

//1.Sayer接口
type Sayer interface{
    say()
}
//2.定义了dog和cat两个结构体
type dog struct{}
type cat struct{}
//3.因为Sayer接口只有一个say()方法,所以我们只需要将dog和cat分别实现say方法就可以实现Sayer接口了
/*dog实现Sayer接口*/
func(d dog) say(){
    fmt.Println("汪汪汪")
}
/*cat实现Sayer接口*/
func(c cat) say(){
    fmt.Println("喵喵喵")
}
// 主函数的写法  
func main() {  
    var s Sayer  
    s = new(dog)  
    s.say()  
    s = new(cat)  
    s.say()  
}

注意:

接口的实现就是这么简单,只要实现了接口中的所有方法,就实现了这个接口

接口类型变量可以存储任何实现了该接口的类型的值