在java语言中,我们会涉及到接口,这里的接口我们经常使用interface实现,同时实现的方法的话需要显示的使用implements继承。下面我们首先使用java语言来列举下如何声明一个接口:
package com.test.inter;
/**
* 编写一个学生的接口,获取学生的姓名
*
* @author Administrator
*
*/
public interface StudentService {
public String getStudentName();
}然后我们再编写一个实现类
package com.test.inter;
public class StudentServiceImpl implements StudentService {
public String getStudentName() {
return "张三";
}
}当我们使用这个接口的时候就可以直接使用了,例如:
StudentService studentService = new StudentServiceImpl(); String studentName = studentService.getStudentName();
然后我们看下使用效果:
以上就是关于java方面的接口及实现,但是在go语言里面呢?可以实现这种吗?
在go语言里面其实是没有这种面向对象的接口及实现的,他可以声明一个接口,但是它的实现是隐式的,我们不需要使用implements这种显示的实现。它主要是通过reciver函数来进行控制,同时我们在go语言中可以只声明接口,不实现它,这样子只要不使用到他,程序就不会出任何问题,在go语言中,只有使用到接口的实现,go语言编译器才会去检查是否有实现这个接口。下面我们使用go语言来演示一下创建一个接口及其实现。
首先我们创建一个动物的接口:
/*
*
首先声明一个animal的接口
*/
type Animal interface {
Walk()
}然后我们创建一个需要实现Animal这个接口的类:
/*
*
创建一个实现类
*/
type Cat struct {
}创建了类之后,我们还需要进行实现上面animal接口的walk方法,这里我们直接借助reciver来实现,示例代码如下:
/*
*
使用reciver来实现上面接口的方法
*/
func (c *Cat) walk() {
fmt.Println("cat walk")
}以上我们就完成了在go语言中创建接口并且实现这里代码的逻辑。最后我们使用这个实现类怎么做呢?示例代码如下:
cat := &Cat{}
cat.walk()然后我们看看效果:
在这里我们使用接口实现类的时候,可以发现这里的话,我们使用了一个&符号,这是由于我们在调用实现类的方法的时候,我们需要引用对象,而不是使用他的值副本。所以这里添加&符号就是为了获取实例的指针引用地址。
最后按照惯例,附上本案例的源码地址,登录后即可下载



还没有评论,来说两句吧...