接口

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

package main

import (
    "fmt"
)
// 定义Phone接口
type Phone interface {
    call()
}
//定义NokiaPhone结构体
type NokiaPhone struct {
}
//Nokia类型实现call方法
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()

}

练习
定义geometry接口,包含【面积area()方法】与【周长perim()方法】,定义rect结构体,circle结构体。给两个结构体(类型)分别实现接口的两个方法,要求所实现的方法都要有返回值。在main函数中打印返回值,要求打印面积与周长时,需要定义measure方法,该方法接收接口类型geometry作为参数,打印出来该实例(参数),面积与周长。

注意:不同之处在于该接口内的方法有返回值,而例子中没有。

接口-参考答案

你可能感兴趣的:(接口)