在Go语言中,接口是一种类型,它定义了一组方法的集合。接口的默认方法是指实现了接口的结构体可以自动获得的方法,而不需要显式地实现这些方法。从Go 1.8开始,接口可以包含默认方法。要定义一个接口的默认方法,请在方法声明前添加default
关键字。
以下是一个示例,展示了如何定义一个包含默认方法的接口:
package main import "fmt" // 定义一个名为Printer的接口,包含一个名为Print的默认方法 type Printer interface { Print() // 定义一个名为DefaultMessage的默认方法 DefaultMessage() string { return "This is a default message." } } // 定义一个名为MyPrinter的结构体,实现了Printer接口 type MyPrinter struct{} // 实现Printer接口的Print方法 func (p MyPrinter) Print() { fmt.Println("Printing using MyPrinter.") } func main() { // 创建一个MyPrinter实例 myPrinter := MyPrinter{} // 调用MyPrinter实例的Print方法 myPrinter.Print() // 调用MyPrinter实例的DefaultMessage方法,由于MyPrinter没有实现该方法,将使用接口中的默认方法 fmt.Println(myPrinter.DefaultMessage()) }
在这个示例中,我们定义了一个名为Printer
的接口,其中包含一个名为Print
的默认方法和一个名为DefaultMessage
的默认方法。然后,我们定义了一个名为MyPrinter
的结构体,并实现了Printer
接口的Print
方法。在main
函数中,我们创建了一个MyPrinter
实例,并调用了它的Print
方法和DefaultMessage
方法。由于MyPrinter
没有实现DefaultMessage
方法,因此将使用接口中的默认方法。