Go 教程
1. Go 语言教程 2. Go 语言环境安装 3. Go 语言结构 4. Go 语言基础语法 5. Go 语言数据类型 6. Go 语言变量 7. Go 语言常量 8. Go 语言运算符 9. Go 语言条件语句 10. Go 语言循环语句 11. Go 语言函数 12. Go 语言变量作用域 13. Go 语言数组 14. Go 语言指针 15. Go 语言结构体 16. Go 语言切片(Slice) 17. Go 语言范围(Range) 18. Go 语言Map(集合) 19. Go 语言递归函数 20. Go 语言类型转换 21. Go 语言接口 22. Go 错误处理 23. Go 语言开发工具

Go 语言接口

Go 语言接口

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

实例

实例

/* 定义接口 */
type interface_name interface {
   method_name1 [return_type]
   method_name2 [return_type]
   method_name3 [return_type]
   ...
   method_namen [return_type]
}

/* 定义结构体 */
type struct_name struct {
   /* variables */
}

/* 实现接口方法 */
func (struct_name_variable struct_name) method_name1() [return_type] {
   /* 方法实现 */
}
...
func (struct_name_variable struct_name) method_namen() [return_type] {
   /* 方法实现*/
}

实例

实例

package main

import (
    "fmt"
)

type Phone interface {
    call()
}

type NokiaPhone struct {
}

func (nokiaPhone NokiaPhone) call() {
    fmt.Println("I am Nokia, I can call you!")
}

type IPhone struct {
}

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()

}

在上面的例子中,我们定义了一个接口Phone,接口里面有一个方法call()。然后我们在main函数里面定义了一个Phone类型变量,并分别为之赋值为NokiaPhone和IPhone。然后调用call()方法,输出结果如下:


I am Nokia, I can call you!

I am iPhone, I can call you!