接口类型与其余数据类型不一样,它是无法被实例化的。更具体地说,咱们既不能经过调用new函数或make函数建立出一个接口类型的值,也没法用字面量来表示一个接口类型的值。接口类型声明中的这些方法所表明的就是该接口的方法集合。一个接口的方法集合就是它的所有特征。函数
怎样断定一个数据类型的某一个方法实现的就是某个接口类型中的某个方法呢?
有两个充分必要条件,一个是“两个方法的签名须要彻底一致”,另外一个是“两个方法的名称要如出一辙”。显然,这比判断一个函数是否实现了某个函数类型要更加严格一些。接口
对于任何数据类型,只要它的方法集合中彻底包含了一个接口的所有特征(即所有的方法),那么它就必定是这个接口的实现类型。这种方式还有一个专有名词,叫“Duck typing”,中文常译做“鸭子类型”get