iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang有抽象类吗
  • 622
分享到

golang有抽象类吗

2023-07-04 23:07:04 622人浏览 安东尼
摘要

今天小编给大家分享一下golang有抽象类吗的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Golang没有抽象类。golan

今天小编给大家分享一下golang有抽象类吗的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Golang没有抽象类。golang并不是面向对象(OOP)语言,没有类和继承的概念,也没有抽象类的概念;但golang中有结构体(struct)和接口(interface),可以通过struct和interface的组合来间接实现面向对象语言中的抽象类。

在 Java 这种面向对象的语言中,抽象类和接口是我们经常会运用到的 2 种对抽象概念进行定义的机制。在 golang 中,没有类和继承的概念。golang 中有结构体(struct),和面向对象语言中的类相似。golang 中也有接口(interface),接口可以定义一组不含有具体实现的方法,其提供了一种方式来说明对象的行为。

然而,在某些情况下,我们需要使用抽象类继承,来帮助我们写出更优雅的代码。可是在 golang 中又没有抽象类的概念,本文将介绍一种通过 struct 和 interface 来在 golang 中实现抽象类的方法。

Golang中怎么实现抽象类

下面我们会用 Java 语言作为示例,来看看如何在面向对象语言中实现抽象类。接着换 golang 语言,通过 struct 和 interface 来实现抽象类,完成相同的功能。

面向对象语言中抽象类的实现

假设我们需要实现下面这样的几个类(使用 Java 为例):

public abstract class Game{    public void play()    {        System.out.println(this.name() + " is awesome!");    }    public abstract String name();}public class Dota extends Game{    public String name()    {        return "Dota";    }}public class LOL extends Game{    public String name()    {        return "LOL";    }}

我们定义了 Game 抽象类,在此类中定义了 public abstract String name(); 一个抽象方法和 public void play() 这样一个公开方法。然后我们定义了 Dota 和 LOL 2个类去继承 Game,并各自实现了 public String name()。

接下来让我们看看如何在 golang 中实现抽象类。

golang 中实现抽象类的方式

  • 定义 interface

首先,我们需要将抽象方法定义在 interface 中。

type IGame interface {Name() string}

  • 定义”父类”

然后,我们需要使用 struct 实现公共方法。

type Game struct {}func (g *Game) play(game IGame) {fmt.Printf(fmt.Sprintf("%s is awesome!", game.Name()))}

这里是重点,我们将 game IGame 传了进来。这样我们便可以调用”子类”的方法来获取名字。从而间接地实现了在公共方法中调用不同”子类”的实现的抽象方法。

  • 定义”子类”

接着,我们再定义”Dota”和”LOL”这 2 个 struct 即可。

type Dota struct {    Game}func (d *Dota) Name() string {return "Dota"}type LOL struct {    Game}func (l *LOL) Name() string {return "LOL"}

  • 大功告成

现在,在初始化”Dota”和”LOL”结构体后,便可以调用 func (g *Game) play(game IGame) 方法了。

dota := &Dota{}dota.play(dota)lol := &LOL{}lol.play(lol)// 输出://Dota is awesome!//LOL is awesome!

以上就是“golang有抽象类吗”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网GO频道。

您可能感兴趣的文档:

--结束END--

本文标题: golang有抽象类吗

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

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

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

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

下载Word文档
猜你喜欢
  • golang有抽象类吗
    今天小编给大家分享一下golang有抽象类吗的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。golang没有抽象类。golan...
    99+
    2023-07-04
  • golang是否有抽象类
    golang没有抽象类。golang并不是面向对象(OOP)语言,没有类和继承的概念,也没有抽象类的概念;但golang中有结构体(struct)和接口(interface),可以通过struct和interface的组合来间接实现面向对象...
    99+
    2023-05-14
    抽象类 go语言 Golang
  • 一文详解Java抽象类到底有多抽象
    目录抽象类1.引出抽象类2.认识抽象类接口1.抽象类和接口的区别2.认识接口3.具体实现USB接口接口表示能力抽象类 1.引出抽象类 向上转型带来的最大的好处就是参数统一化,使用共同...
    99+
    2024-04-02
  • 【javaSE】 抽象类
    目录 抽象类概念 抽象类语法 抽象类特性 1. 抽象类不能直接实例化对象 2. 抽象方法不能是 private 的 3. 抽象方法不能被final和static修饰 4. 抽象类必须被继承,并且继承后子类要重写父类中的抽象方法 5. 抽象类...
    99+
    2023-09-01
    java 开发语言 抽象类
  • PHP 抽象类
    抽象类是具有至少一种抽象方法的类。本教程演示如何在 PHP 中创建和使用抽象类。PHP 抽象类在 PHP 中,抽象类是使用 abstract 关键字声明的,这与 C++ 不同。抽象类应该至少包含一个没有任何...
    99+
    2024-02-27
  • java中的抽象类有哪些
    java中的抽象类有:1.实现类;2.执行类;3.测试类;4.动物类;java中的抽象类有以下几种实现类public class Cat extends Animal(){public void shout(){System.out.pri...
    99+
    2024-04-02
  • Golang函数的抽象类型应用方法
    Golang是目前非常流行的一种程序语言,一大特点就是其简洁、高效、跨平台、易学等优势。这个语言集成了许多现代化编程语言的高科技特征,最近几年来更是备受开发人员的追捧。其中Golang的抽象类型应用方法对于开发人员来说相当重要,本文将主要讲...
    99+
    2023-05-16
    Golang 抽象类型 应用方法
  • Java之抽象类
    Java之抽象类 抽象类概念抽象类如何使用抽象类的特性 作者简介: zoro-1,目前大一,正在学习Java,数据结构等 作者主页:zoro-1的主页 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!Ὁ...
    99+
    2023-08-21
    java 开发语言
  • golang 有类吗
    Golang是一门以C语言为基础的编程语言,也被称为Go语言。与其他一些编程语言不同,Golang的设计目标是在增强程序员生产力的同时,提供更高的安全性和并发性能。它的设计思路主要体现在简洁易懂的语法、强大的标准库和高效的并发机制上。那么,...
    99+
    2023-05-14
  • Golang中的抽象类使用方法详解
    Golang中的抽象类使用方法详解 在Go语言中,并没有传统意义上的抽象类和接口继承的概念,但是可以通过结构体嵌套和接口组合来实现类似的功能。本文将详细介绍如何在Golang中实现类似...
    99+
    2024-03-14
    方法 golang 抽象类 go语言
  • python抽象类可以被实例化吗
    不可以。抽象类是一种特殊的类,不能直接被实例化。抽象类的主要作用是为其子类提供一个共同的接口,并定义一些通用的方法。抽象类定义了一些...
    99+
    2023-10-25
    python
  • 什么是php抽象类和抽象方法
    这篇文章主要介绍“什么是php抽象类和抽象方法”,在日常操作中,相信很多人在什么是php抽象类和抽象方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是php抽象类和抽象方法”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • Java中对象、类、抽象类三者有什么关系
    Java中对象、类、抽象类三者有什么关系?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。package Java从入门到项目实战.抽象类与接口;//动物interfac...
    99+
    2023-06-06
  • 【JAVA】Object类与抽象类
    作者主页:paper jie_的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将ja...
    99+
    2023-09-10
    java 开发语言
  • 探究Golang中抽象类的优势与不足
    探究Golang中抽象类的优势与不足 抽象类是面向对象编程中的一个重要概念,通过抽象类可以实现面向接口编程,提高代码的灵活性和可复用性。在Golang这样一门静态类型的编程语言中,抽象...
    99+
    2024-03-14
    golang 优势 抽象类
  • java中抽象类有什么作用
    抽象类在Java中有以下作用:1. 定义共同的属性和方法:抽象类可以包含属性和方法的定义,这些属性和方法可以被其子类继承和重写。抽象...
    99+
    2023-08-11
    java
  • java抽象类的特点有哪些
    Java抽象类的特点包括:1. 抽象类不能实例化:抽象类不能直接创建对象,只能通过继承抽象类来使用。2. 抽象类可以有构造方法:抽象...
    99+
    2023-08-17
    java
  • php抽象类的特点有哪些
    抽象类不能被实例化,只能被继承。 抽象类可以包含抽象方法和非抽象方法。 抽象方法必须在子类中被实现,否则子类也必须声明为抽象类。 ...
    99+
    2024-03-01
    php
  • 如何在Golang中模拟抽象类的概念
    在Golang中虽然没有像Java或C#那样的抽象类概念,但是我们可以通过接口和匿名组合来模拟实现类似抽象类的功能。通过定义一个接口,并在其内部嵌入匿名结构体以实现代码复用和对方法的默...
    99+
    2024-03-13
    接口 继承 结构体
  • php抽象类的作用有哪些
    PHP抽象类的作用包括:1. 定义通用的属性和方法:抽象类可以定义一些通用的属性和方法,供其子类继承和实现。这样可以避免在多个类中重...
    99+
    2023-08-09
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作