package main import "fmt" type Human struct { name string sex string } func (this *Human) Eat() { fmt.Println("Human.Eat()...") } func (this *Human) Walk() { fmt.Println("Human.Walk()...") } type Superman struct { Human level int } func (this *Superman) Eat() { fmt.Println("Superman.Eat()...") } func (this *Superman) Fly() { fmt.Println("Superman.Fly()...") } func (this *Superman) Show() { fmt.Println("name = ", this.name) fmt.Println("sex = ", this.sex) fmt.Println("level = ", this.level) } func main() { h := Human{"zhang3", "female"} h.Eat() h.Walk() var s Superman s.name = "li4" s.sex = "male" s.level = 96 // s := Superman{Human{"li4", "female"}, 88} s.Walk() // 父类方法(子类没有重载) s.Eat() // 子类方法 s.Fly() // 子类方法 s.Show() }