0
点赞
收藏
分享

微信扫一扫

go 接口

NicoalsNC 2023-03-11 阅读 49

demo如下:

package main

import "fmt"

//定义一个接口
type Phone interface {
speak()
read()
}

//以下结构体可以分别设置自己的属性
type IPhone struct {
name string
}

type Oppo struct {
id int
}
type Mi struct {
f bool
}

// 手机讲话区域(对相关的接口进行实现)
func (a IPhone) speak() {
fmt.Println("我叫sir,您好!")
}

func (a IPhone) read() {
fmt.Println("爱疯,read!")
}

func (a Oppo) read() {
fmt.Println("oppo,read!")
}

func (a Oppo) speak() {
fmt.Println("我是oppo小精灵!")
}
func (a Mi) speak() {
fmt.Println("大家好,我是小爱童鞋!")
}

func (a Mi) read() {
fmt.Println("mi,read!")
}

// 中央广场展示大舞台(可以直接将不同的实现接口的结构体对象传进来) 
func show(myPhone Phone) {
myPhone.speak()
}


func main() {
// 将新建对象传入展示大舞台,大舞台代码不变,展示不同的效果
var r = Oppo{1}
var a Phone = r
a = IPhone{ "aa", }
show(a)
}

 

结束!

 



举报

相关推荐

0 条评论