二话不说,上代码
package main
import "fmt"
/* 实现一个手机,两个功能,
发微信
发短信
*/
// 智能手机
type SmartPhone interface {
SentWechat(text string)
SendMsg(text string)
}
type WechatApp struct {
}
func (w *WechatApp) SentWechat(string2 string) {
fmt.Printf("微信消息:%s", string2)
}
// 老人机可以发短信
type OldPhone struct {
WechatApp // 刷机搞了个app
}
func (o *OldPhone) SendMsg(msg string) {
fmt.Printf("短信消息:%s", msg)
}
func main() {
oldp := new(OldPhone)
var smartphone SmartPhone
smartphone = oldp
smartphone.SendMsg("老铁,帮我充电话费,手机没话费了\n")
smartphone.SentWechat("嗨,干嘛呢\n")
}
>>>
短信消息:老铁,帮我充电话费,手机没话费了
微信消息:嗨,干嘛呢
总结:接口不关心实现是一个结构体还是几个几个结构体共同实现的。