首页 > 其他分享 >Golang接口

Golang接口

时间:2023-02-19 18:55:31浏览次数:70  
标签:getarea 接口 Golang shape circle rectangle 底层

理解go中的接口,首先从java的入手
圆形和长方形是不同形状,因此他们是两个类,circle和rectangle
在java中,他们应当拥有一个公共父类,即形状shape
无论哪种形状,都应当是可计算面积的,因此shape类会存在一个抽象方法getarea()
circle类和rectangle类在继承shape父类时,需要重写getarea()方法以实现各自的面积计算
此时,getarea()就是一个接口
计算机科学中接口的作用一般描述为底层提供上层接口,从而屏蔽底层实现细节,上层在调用时无需考虑具体实现
对应上方例子,就是circle和rectangle在计算面积时,直接使用getarea即可,而需要考虑getarea是如何实现的,不过实际上getearea还是我们来实现的,这是因为我们既是底层开发者,又是上层调用者
当我们把视野放置到其他位置,例如操作系统中的接口,windows api,我们仅作为上层调用者,无需考虑接口底层的实现方式

go与jave等oop语言不同的是,go中不存在类和继承的概念,因此不太能用上面的例子来理解
go中存在结构体,实际上我们可以把结构体等效为上述例子中的类,
一个circle结构体和一个rectangle结构体,一个接口shape,shape中包含getarea方法
当circle和rectangle实现了该方法后,同样可以实现符合各自计算面积的方法

实际上编程语言中的接口更能体现的是多态,关于屏蔽底层细节这件事情,由于我们同时负责底层和上层,所以表现并不明显

Reference

标签:getarea,接口,Golang,shape,circle,rectangle,底层
From: https://www.cnblogs.com/G-H-Y/p/17135348.html

相关文章

  • 接口
    接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法。专业的约束!约束和实现分离:面向接口编程接口就是规范,定义......
  • golang执行命令 && 实时获取输出结果
    背景golang可以获取命令执行的输出结果,但要执行完才能够获取。如果执行的命令是ssh,我们要实时获取,并执行相应的操作呢?示例funcmain(){ user:="root" host:="......
  • Golang数据结构
    数据类型不同类型的内存样式图查看变量类型使用fmt.Printfpackagemainimport"fmt"funcmain(){str:="Helloworld"fmt.Printf("%T",str)}使用re......
  • Golang基础-随机数
    import"math/rand"n:=rand.Intn(100)//nisarandomint,0<=n<100f:=rand.Float64()//fisarandomfloat64,0.0<=f<1.0x:=[]string{"a","b",......
  • Java 接口
    目录1、接口的概念2、接口的定义3、接口的使用4、接口和抽象类1、接口的概念类是一种具体的实现体,而接口定义了一种规范(抽象方法),接口定义了某一批类所需要遵循的规范,接口......
  • Golang基础-Structs与Methods
    将struct定义为一种类型CarNewCar函数return&Car{},返回指针//car.gopackageelon//Carimplementsaremotecontrolledcar.typeCarstruct{ speed......
  • golang 数组
    1.概念golang中的数组是具有固定长度及相同数据类型的序列集合2.初始化数组var数组名[数组大小]数据类型packagemainimport"fmt"funcmain(){ //第一种 v......
  • Golang字符串拼接
    使用+funcplusConcat(nint,strstring)string{ s:="" fori:=0;i<n;i++{ s+=str } returns}使用fmt.SprintffuncsprintfConcat(nint,str......
  • Golang基础-Switch
    不需要手动breakdefault是找不到case时执行可以对多个case执行同样的操作operatingSystem:="windows"switchoperatingSystem{case"windows","linux"://......
  • robotframework接口请求常用关键字:RequestsLibrary
    ------------摘抄自51Testing软件测试网站------------一、版本对比RequestsLibrary最新版本为2021.4.22号发布的0.91版本,适配python2.x和python3.x,只需一句pipinstall......