接口

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作为参数,打印出来该实例(参数),面积与周长。

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

接口-参考答案

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容