• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Go语言接口

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

接口是面向对象的必备属性之一,即便是像C语言这种面向过程的语言也可以通过指向函数的指针来实现接口。我们熟知的面向对象语言中更是少不了接口。最近闲了下来,又可以开始学习Go语言了,发现Go语言的接口吸收了各种语言的优点,也考虑到了很多面向对象语言的不足。

如果我使用的Java在创建一个借口的时,我会如何做呢?

1 public interface TestInterface {
2     public int getNumber(int num1, int num2);
3 }

然后是这个接口的实现类:

1 class Test1 implements TestInterface {
2     public int getNumber(int num1, int num2) {
3         return num1+num2;
4     }
5 }

这样的做法在使用的时候必然会出现如下代码:

TestInterface test = new Test1();

那么在Go语言中是这样实现的:

1 type TestInterface interface {
2     getNumber(num1 int, num2 int) int
3 }

然后写这个接口的实现类:

1 type Test struct {
2 }
3 
4 func (t *Test) getNumber(num1 int, num2 int) int {
5     return num1 + num2
6 }

这样同样new一个实现类的时候可以这么做:

1 var test1 TestInterface = new(Test)
2 fmt.Println(test1.getNumber(1, 2))

这种类型的接口和Java中接口的显著差别在于这个接口在实现的时候并没有做继承一类的工作,在Go语言中,一个类只需要实现了接口要求的所有函数,就可以说这个类实现了这个接口,哪怕这个实现类还加上了其他函数,也不影响他是一个实现类。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言操作NoSql发布时间:2022-07-10
下一篇:
【Go语言】【8】GO语言的条件语句和选择语句发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap