golang - go中怎样形象的理解接口?

查看:163
本文介绍了golang - go中怎样形象的理解接口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

结构体可以用类来理解,方法可以用类内定义的函数来理解,有点搞不懂接口到底用来干嘛

解决方案

如果说类是对数据和方法的抽象和封装,那么接口就是对类的抽象。

这里使用Java来说明,Java中的接口与`Go`中的接口是类似的,只不过Java中要显式的声明实现某个接口,而Go中不需要显式的声明实现了某个接口,只要实现了其中的所有方法,就默认为实现了该接口。

比如说有一个Person接口:

public interface Person{
    void walk();
}

有一个Student类实现了Person接口

public class Student implements Person {
    //实现walk方法
    @Override
    public void walk(){
        System.out.print("Student.walk()");
    }
    //...其他方法
}

有一个Teacher类也实现了Person接口

public class Teacher implements Person {
    //实现walk方法
    @Override
    public void walk(){
        System.out.print("Teacher.walk()");
    }
    //...其他方法
}

在某个类中可以这样使用

public class SomeClass{
    //这里接收一个Person类型
    public static void usePerson(Person p){
        p.walk()
    }
    
    public static void main(String[] args){
        //可以接收任何实现了Person接口的类的对象
        usePerson(new Student());
        usePerson(new Teacher());
    }
}

使用接口的好处是非常灵活,这样就与具体的实现做了解耦,如果以后有其他的实现类,只需要实现Person接口就可以了,而不用去改使用的时候的代码。

这篇关于golang - go中怎样形象的理解接口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆