在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
。