Go语言如何实现多态
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇"Go语言如何实现多态 "文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Go语言如
千家信息网最后更新 2025年01月16日Go语言如何实现多态
这篇"Go语言如何实现多态 "文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Go语言如何实现多态 "文章吧。
多态是什么
相信学过Java这种面向对象语言的同学对于多态来说都不陌生,在代码执行的时候,能够根据子类的类型去执行子类当中的方法。多态是指代码可以根据类型的具体实现采取不同行为的能力。如果一个类型实现了某个接口,所有使用这个接口的地方,都可以支持这种类型的值。
Go语言多态举例
有这样一个场景,我们在应用开发中涉及到很多通知事件,通知的类型可以是通过微信、QQ、Email等,那么我们可以抽象出一个接口,定义一个通知的接口,然后微信通知类、QQ通知类、Email通知类分别实现对应的通知方法。
定义一个通知类型:notifier
// 通知者接口type Notifier interface { // 通知方法,可以由具体的类进行实现 notify()}
定义微信类型、QQ类型、Email类型,并实现notify方法,以指针类型作为方法的接收者
type WechatNotifier struct { Name string Message string}func (w *WechatNotifier) notify() { fmt.Printf("%v notify %v \n", w.Name, w.Message)}type QQNotifier struct { Name string Message string}func (q *QQNotifier) notify() { fmt.Printf("%v notify %v \n", q.Name, q.Message)}type EmailNotifier struct { Name string Message string}func (e *EmailNotifier) notify() { fmt.Printf("%v notify %v \n", e.Name, e.Message)}
定义发送通知方法,入参为Notifier;等需要调用的时候,需要传入实现了Notifier中的接口的类型
func sendNotify(notifier Notifier) { notifier.notify()}
测试一下
func main() { w := &WechatNotifier{ Name: "微信", Message: "微信消息", } q := &QQNotifier{ Name: "QQ", Message: "QQ消息", } e := &EmailNotifier{ Name: "Email", Message: "Email消息", } // 接受微信类型 sendNotify(w) // 接受QQ类型 sendNotify(q) // 接受Email类型 sendNotify(e)}
测试结果如下:
以上就是关于"Go语言如何实现多态 "这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
类型
多态
接口
方法
语言
内容
消息
代码
子类
文章
时候
知识
篇文章
测试
不同
陌生
事件
价值
同学
地方
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
平凉网络安全工程师视频
服务器机箱和家用电脑区别
大厂的服务器操作系统
网络安全主题创意绘画4k纸
皇冠正版软件开发公司
末义服务器
软件开发要求报告
济南鼎康网络技术有限公司
网络安全软件推荐
上海海事大学校园网服务器地址
数据库连接池close
二级网络安全等级软硬件要求
菏泽城管通软件开发系统
苹果数据库泄露压缩包
数据库超出连接数
集团网络安全运维中心
网络安全与信息化工作建设
使命召唤8服务器ip
软件开发的项目简介模板
涛思数据库转储
服务器搭建tiny免流
广州物联网软件开发多少钱
服务器内存容量不够
金蝶软件服务器总是开着机吗
云服务器清空硬盘数据
社区妇联举办网络安全知识讲座
中国电器院软件开发岗位
软件开发工程师工资一览表
电力监控系统网络安全 指南
苍南立体化刀片服务器欢迎咨询