Golang 接口

邦_ · · 321 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。


package main

import "fmt"

type Person struct {
    name string
    age  int
    sex  string
}

type Worker struct {
    Person
    number int
}

func (p Person) eat() {

    fmt.Printf("%s在吃饭....", p.name)

}




func (w Worker) eat()  {
    fmt.Printf("%s子类在吃饭....",w.name)
}


func (w Worker) work() {
    fmt.Printf("%s在工作....\n", w.name)
}
func (w *Worker) sleep() {
    w.name = "小白"
    fmt.Printf("%s在睡觉....\n", w.name)

}

func main() {

    var worker Worker
    worker.name = "张三"
    worker.work()
    worker.eat()
    //go的官方文档中说到,不支持重载机制可以简化方法调度。从其他语言的经验上看,重载只是偶尔有用,但会在实践中引起误解和导致脆弱性。
    worker1 := &Worker{Person:Person{name: "李四"} }
    worker1.sleep()
    worker1.eat()
    fmt.Println(worker1.name)

}


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:邦_

查看原文:Golang 接口

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

321 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传