golang - go中怎样形象的理解接口?
本文介绍了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屋!
查看全文