ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
``` package main import ( "fmt" ) // 封装和继承:通过结构体和嵌套结构体实现 type Animal struct { Name string } func (a *Animal) Speak() { fmt.Printf("%s makes a sound\n", a.Name) } type Dog struct { Animal // 嵌套Animal结构体,实现继承 Breed string } func (d *Dog) Speak() { fmt.Printf("%s barks: Woof Woof!\n", d.Name) } type Cat struct { Animal // 嵌套Animal结构体,实现继承 Breed string } func (c *Cat) Speak() { fmt.Printf("%s meows: Meow Meow!\n", c.Name) } // 多态:通过接口实现 type Speaker interface { Speak() } func LetAnimalSpeak(speaker Speaker) { speaker.Speak() } func main() { // 创建Dog和Cat对象 dog := Dog{Animal{"Rover"}, "Golden Retriever"} cat := Cat{Animal{"Whiskers"}, "Siamese"} // 使用多态 LetAnimalSpeak(&dog) // 多态,调用Dog的Speak方法 LetAnimalSpeak(&cat) // 多态,调用Cat的Speak方法 } ```