在Go語言中,接口是一種類型,它定義了一組方法的集合。接口的默認(rèn)方法是指實現(xiàn)了接口的結(jié)構(gòu)體可以自動獲得的方法,而不需要顯式地實現(xiàn)這些方法。從Go 1.8開始,接口可以包含默認(rèn)方法。要定義一個接口的默認(rèn)方法,請在方法聲明前添加default
關(guān)鍵字。
以下是一個示例,展示了如何定義一個包含默認(rèn)方法的接口:
package main
import "fmt"
// 定義一個名為Printer的接口,包含一個名為Print的默認(rèn)方法
type Printer interface {
Print()
// 定義一個名為DefaultMessage的默認(rèn)方法
DefaultMessage() string {
return "This is a default message."
}
}
// 定義一個名為MyPrinter的結(jié)構(gòu)體,實現(xiàn)了Printer接口
type MyPrinter struct{}
// 實現(xiàn)Printer接口的Print方法
func (p MyPrinter) Print() {
fmt.Println("Printing using MyPrinter.")
}
func main() {
// 創(chuàng)建一個MyPrinter實例
myPrinter := MyPrinter{}
// 調(diào)用MyPrinter實例的Print方法
myPrinter.Print()
// 調(diào)用MyPrinter實例的DefaultMessage方法,由于MyPrinter沒有實現(xiàn)該方法,將使用接口中的默認(rèn)方法
fmt.Println(myPrinter.DefaultMessage())
}
在這個示例中,我們定義了一個名為Printer
的接口,其中包含一個名為Print
的默認(rèn)方法和一個名為DefaultMessage
的默認(rèn)方法。然后,我們定義了一個名為MyPrinter
的結(jié)構(gòu)體,并實現(xiàn)了Printer
接口的Print
方法。在main
函數(shù)中,我們創(chuàng)建了一個MyPrinter
實例,并調(diào)用了它的Print
方法和DefaultMessage
方法。由于MyPrinter
沒有實現(xiàn)DefaultMessage
方法,因此將使用接口中的默認(rèn)方法。