简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为。这样Student实现了三个方法:SayHi、Sing、BorrowMoney;而Employee实现了SayHi、Sing、SpendSalary。上面这些方法的组合称为interface。同理,一个对象可以实现任意多个interface,例如上面的Student实现了Men和YoungChap两个interface。例如上面例子中,我们定义了一个Men interface类型的变量m,那么m里面可以存Human、Student或者Employee值。一个函数把interface{}作为参数,那么他可以接受任意类型的值作为参数,如果一个函数返回interface{},那么也就可以返回任意类型的值。如果没有实现这个接口,fmt将以默认的方式输出。如果一个interface1作为interface2的一个嵌入字段,那么interface2隐式的包含了interface1里面的method。
暂无评论