在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()
然后我们看看效果:
在这里我们使用接口实现类的时候,可以发现这里的话,我们使用了一个&符号,这是由于我们在调用实现类的方法的时候,我们需要引用对象,而不是使用他的值副本。所以这里添加&符号就是为了获取实例的指针引用地址。
最后按照惯例,附上本案例的源码地址,登录后即可下载
还没有评论,来说两句吧...