52 lines
806 B
Go
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()
|
|
}
|