zoukankan      html  css  js  c++  java
  • Go语言接口

    接口是面向对象的必备属性之一,即便是像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语言中,一个类只需要实现了接口要求的所有函数,就可以说这个类实现了这个接口,哪怕这个实现类还加上了其他函数,也不影响他是一个实现类。

  • 相关阅读:
    1.NopCommerce下载与安装
    DLT(Direct Linear Transform)算法
    向量叉乘与叉乘矩阵
    最小二乘与最大似然估计之间的关系
    最小二乘法
    Levenberg-Marquardt迭代(LM算法)-改进Guass-Newton法
    Newton法(牛顿法 Newton Method)
    自己所有博客汇总
    Unity 预制体烘焙光影丢失,Unity2018 预制嵌套
    XmlException: Text node canot appear in this state
  • 原文地址:https://www.cnblogs.com/Summer7C/p/6148952.html
Copyright © 2011-2022 走看看