go語音之進階篇接口的繼承
阿新 • • 發佈:2019-01-11
man ace 繼承 imp \n nbsp class bsp string
1、接口的繼承
示例:
package main
import "fmt"
type Humaner interface { //子集
sayhi()
}
type Personer interface { //超集
Humaner //匿名字段,繼承了sayhi()
sing(lrc string)
}
type Student struct {
name string
id int
}
//Student實現了sayhi()
func (tmp *Student) sayhi() {
fmt.Printf("Student[%s, %d] sayhi\n", tmp.name, tmp.id)
}
func (tmp *Student) sing(lrc string) {
fmt.Println("Student在唱著:", lrc)
}
func main() {
//定義一個接口類型的變量
var i Personer
s := &Student{"mike", 666}
i = s
i.sayhi() //繼承過來的方法
i.sing("學生哥")
}
執行結果:
Student[mike, 666] sayhi Student在唱著: 學生哥
go語音之進階篇接口的繼承