go_study/bilibili/aceld/struct/inherit/test.go
2024-11-19 12:27:49 +08:00

52 lines
806 B
Go

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()
}