iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Go语言如何实现多态 
  • 687
分享到

Go语言如何实现多态 

2023-06-30 14:06:20 687人浏览 安东尼
摘要

这篇“Go语言如何实现多态 ”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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语言如何实现多态 

以上就是关于“Go语言如何实现多态 ”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Go语言如何实现多态 

本文链接: https://www.lsjlt.com/news/329349.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go语言如何实现多态 
    这篇“Go语言如何实现多态 ”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go语言如何实现多态 ”文章吧...
    99+
    2023-06-30
  • Go语言状态机如何实现
    这篇文章主要介绍“Go语言状态机如何实现”,在日常操作中,相信很多人在Go语言状态机如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言状态机如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-05
  • 深入理解Go语言实现多态
    目录多态是什么Go语言多态举例总结多态是什么 相信学过Java这种面向对象语言的同学对于多态来说都不陌生,在代码执行的时候,能够根据子类的类型去执行子类当中的方法。多态是指代码可以根...
    99+
    2024-04-02
  • Go语言中如何使用接口来实现多态性?
    Go语言是一种强类型、静态类型的编程语言,它支持面向对象编程(OOP)的特性,其中最重要的特性之一是多态性。多态性是面向对象编程中的一个重要概念,它允许不同的对象对同一消息做出不同的响应。本文将介绍Go语言中如何使用接口来实现多态性。 接口...
    99+
    2023-08-05
    对象 接口 数据类型
  • Go语言多态和interface如何使用
    本文小编为大家详细介绍“Go语言多态和interface如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go语言多态和interface如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。多态的含义对于...
    99+
    2023-06-27
  • Go语言状态机的实现
    目录一、状态机二、代码1. database包2. fsm包3. order包4. main包三、个人总结一、状态机 1. 定义 有限状态机(Finite-state machine...
    99+
    2023-03-09
    Go语言状态机
  • 浅谈Go语言多态的实现与interface使用
    目录一、多态的含义二、抽象类与接口三、Golang中的接口四、总结一、多态的含义 对于Java或者是C++而言,我们在使用变量的时候,变量的类型是明确的。但是如果我们希望它可以宽松一...
    99+
    2024-04-02
  • Go语言接口使用教程:如何在编程算法中实现多态?
    Go语言是一种强类型的编程语言,它支持接口类型。接口类型是一种抽象类型,它定义了一组方法集,但没有实现这些方法。因此,接口类型可以用来描述任何实现了这些方法的类型。在Go语言中,接口类型是实现多态的关键。 接口的定义 在Go语言中,接口类...
    99+
    2023-10-23
    接口 教程 编程算法
  • 如何用 Go 语言实现 SCP
    随着数据传输的不断增长,传输大量数据时如何确保数据安全和传输效率变得越来越重要。SCP (Secure Copy Protocol)是一种安全传输文件的协议,与SSH (Secure Shell)一起使用。本文将介绍如何用 Go 语言实现 ...
    99+
    2023-05-14
  • Go语言中锁如何实现
    今天小编给大家分享一下Go语言中锁如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Lock// Lock&n...
    99+
    2023-07-05
  • 如何使用Go语言实现多线程Websocket通信
    在近年来,实时通信已经成为了一种基本的需要。WebSocket则更是实时通信当中的佼佼者,它能够更快速、有效地实现客户端和服务器端之间的实时通信。而Go语言也作为近年来较火热的一种语言,被广泛应用于实时通信中。利用Go语言的优点以及多线程处...
    99+
    2023-12-14
    多线程 Go语言 Websocket通信
  • go语言多线程怎么实现
    在Go语言中,可以使用goroutine来实现多线程。goroutine是Go语言中的轻量级线程,可以同时运行在一个操作系统线程上。...
    99+
    2023-10-21
    go语言
  • Go语言中如何实现并发?
    Go语言作为一门新兴的编程语言,其最大的特点之一就是并发编程,它可以轻松地实现高并发的任务。那么,Go语言中如何实现并发呢?本文将为您详细解答。 goroutine goroutine是Go语言中的轻量级线程,它可以在一个单独的线程中...
    99+
    2023-09-30
    并发 shell bash
  • go语言如何实现全排列
    今天小编给大家分享一下go语言如何实现全排列的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。思路:首先画出全排列的树形结构,以...
    99+
    2023-07-05
  • C/C++使用C语言实现多态
    目录1.多态的概念1.1什么是多态?1.2为什么要用多态呢?1.3多态有什么好处?2.多态的定义及实现2.1继承中构成多态的条件2.2虚函数2.3虚函数的重写2.4C++11 ove...
    99+
    2024-04-02
  • C语言如何实现动态链表
    今天小编给大家分享一下C语言如何实现动态链表的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。链表是一种物理存储单元上非连续、非...
    99+
    2023-06-30
  • go语言如何注释多行
    这篇文章主要介绍“go语言如何注释多行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言如何注释多行”文章能帮助大家解决问题。在go语言中,可以使用多行注释符“”来注释多行代码。多行注释(简称块...
    99+
    2023-07-04
  • Go语言如何多开协程
    这篇文章主要讲解了“Go语言如何多开协程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言如何多开协程”吧!Go语言中的goroutine,类似于线程,但是更轻量级、更高效。使用goro...
    99+
    2023-07-06
  • Java和C语言如何使用静态语言实现动态数组
    这篇文章将为大家详细讲解有关Java和C语言如何使用静态语言实现动态数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JAVA版JAVA自带了一个集合类ArrayList,可以实现动态数组的功能,相比原生...
    99+
    2023-05-31
    java c语言
  • 如何使用Go语言实现路由的静态文件服务
    如何使用Go语言实现路由的静态文件服务概述:在Web开发中,静态文件服务是非常常见且重要的功能。它通常用于提供网站的静态资源,例如HTML、CSS、JavaScript、图像等。本文将介绍如何使用Go语言实现一个简单的路由的静态文件服务,并...
    99+
    2023-12-17
    Go语言 路由 静态文件服务
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作