1. 程式人生 > >go語音之進階篇接口的繼承

go語音之進階篇接口的繼承

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語音之進階篇接口的繼承