美文网首页
go 1.3 逐行讲 结构体和子类方法

go 1.3 逐行讲 结构体和子类方法

作者: 秸秆混凝烧结工程师 | 来源:发表于2021-12-08 17:57 被阅读0次

    这里我们称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

    相关文章

      网友评论

          本文标题:go 1.3 逐行讲 结构体和子类方法

          本文链接:https://www.haomeiwen.com/subject/gmbtfrtx.html