Go语言 之多态

package main

import (
    "fmt"
)

//定义接口
type Person interface {
    sayHi()
}

//定义学生类
type Students struct {
    name string
}

//定义学生方法
func (s *Students) sayHi() {
    fmt.Printf("Students %s say hi\n", s.name)
}

//定义老师类
type Teacher struct {
    name string
}

func (t *Teacher) sayHi() {
    fmt.Printf("Teacher %s say hi\n", t.name)
}

//多态
func WhoSayHi(p Person) {
    p.sayHi()
}

func main() {
    s := &Students{"yy"}
    t := &Teacher{"yangs"}
    WhoSayHi(s)
    WhoSayHi(t)
}

 

posted @ 2019-06-29 10:38  样子2018  阅读(679)  评论(0编辑  收藏  举报