在Go语言中,接口是一种抽象类型,它定义了一组方法,但不实现它们。接口可以被其他接口继承,这意味着一个接口可以包含另一个接口的所有方法。这种继承方式称为组合。
要实现接口继承,你需要使用嵌入关键字(embed
)。这里有一个简单的例子来说明如何使用嵌入关键字实现接口继承:
package main import "fmt" // 定义一个接口A type InterfaceA interface { MethodA() } // 定义一个接口B,嵌入接口A type InterfaceB interface { InterfaceA MethodB() } // 定义一个结构体,实现接口A和接口B的方法 type MyStruct struct{} func (s MyStruct) MethodA() { fmt.Println("MethodA") } func (s MyStruct) MethodB() { fmt.Println("MethodB") } func main() { var b InterfaceB = MyStruct{} b.MethodA() // 调用接口A的方法 b.MethodB() // 调用接口B的方法 }
在这个例子中,我们定义了两个接口InterfaceA
和InterfaceB
。InterfaceB
嵌入了InterfaceA
,这意味着InterfaceB
继承了InterfaceA
的所有方法。然后,我们定义了一个结构体MyStruct
,它实现了InterfaceA
和InterfaceB
的所有方法。最后,在main
函数中,我们创建了一个InterfaceB
类型的变量b
,并将MyStruct
实例赋值给它。这样,我们就可以调用b
的方法,这些方法分别属于InterfaceA
和InterfaceB
。