这里我们称go 的结构体为类
"""
package main
import "fmt"
//定义一个类 这里称之为 父类
type Human struct {
name string
sex string
}
// 定义一个父类方法 eat()
func (this *Human) Eat() {
fmt.Println("Human.Eat()...")
}
// 定义一个父类方法 walk
func (this *Human) Walk() {
fmt.Println("Human.Walk()...")
}
// 定义一个子类 子类Superman
type Supeman struct {
Human // 继承Human
level int
}
// 给子类重写义父类方法EAT()
func (this *Supeman)Eat() {
fmt.Println("Superman EAT()...")
}
// 定义子类方法fly
func (this *Supeman)fly() {
fmt.Println("Superman fly()...")
}
// 我们看一下子类是否都是好的
func (this *Supeman)Printer() {
fmt.Println("name ",this.name)
fmt.Println("sex",this.sex)
fmt.Println("level",this.level)
}
func main() {
// 初始化一个父类
h:= Human{"zhangsan","famale"}
h.Eat()
h.Walk()
// 初始化一个子类1
//s := Supeman{Human{"gaoyuanyuan","male"},88}
// 初始化子类2
var s Supeman
s.name = "xuqing"
s.sex = "male"
s.level = 99
s.Walk() // 用的父类的防范
s.Eat() //调用子类的方法,这我们重写父类的方法EAT()
s.fly() // 调用子类的方法
s.Printer() // 调用子类的printer方法
}
"""
_____+++++++______
输出:
Human.Eat()...
Human.Walk()...
Human.Walk()...
Superman EAT()...
Superman fly()...
name xuqing
sex male
level 99
image.png image.png image.png
网友评论