一。定义:
1. type:定义一个新的数据类型
2.interface:这是一个接口
与结构体的区别:这里只有方法,没有属性。
二。用途:
1. Go 语言提供了一种接口功能,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这种方法,不一定要显式要去实现哪些接口啦。比如上面的手机的 call()方法,就完全可以定义在接口 Phone 里面,而 NokiaPhone 和 IPhone 只要实现了这个接口就是一个 Phone
2.更高一层的抽象,不同于结构体的内嵌或继承
3.方法都是空的,方法的实现在子类里
三。其他;
1. 与其他数据类型不一样,不能实例化,不能通过new或make函数创建
2.结构体的花括号内是字段声明,接口花括号是方法声明,方法集
3.一个结构体的值方法没有实现一个接口,不代表指针方法没有实现这个接口
4.接口的动态值(实际值),动态类型,静态类型
四。接口的用法:
1. 找到实现其所有方法集的数据类型
2.对这个数据类型实例化
3.声明一个接口变量
4.把这个实例化的变量赋值给接口变量
5.给接口变量赋值是什么概念?是创建接口么?
五。一条重要的规则:
如果我们使用一个变量给另外一个变量赋值,那么真正赋给后者的值,并不是前者持有的那个值,而是该值的一个副本。
六。接口的组合(继承):