多态是面向对象的三大基本特性之一。多态是指对于不同的实例,同样的操作可能会有不同的表现形式。例如加法操作,如果操作的数据是数,那么它对两个数进行求和;如果操作的数据是字符串,那么它将连接两个字符串。
多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,那些操作可以通过相同的方式予以调用。这样可以减少代码的复杂度。
在Go语言里,定义这些操作的类叫作接口(interface)。
一、接口的概述
在Go语言中,接口是一个自定义类型,具体描述了一系列方法的集合。它是一种抽象的类型,不会暴露出它所代表的对象的内部值结构和这个对象支持的基础操作的集合,它们只会展示出它们自己的方法,即接口指定了一个类型应该具有的方法,并由该类型决定如何实现这些方法。
在Go语言中,当一个类型定义了接口中的所有方法,我们称它实现了该接口。
二、接口的定义与实现
2.1 接口的定义
接口的定义格式与结构体类似,接口的定义需要关键词type和interface。定义如下: