golang 面向對象

type Animal interface {
	// 這裏可以嵌入(或者說組合)別的接口
	speak()
	big() bool
}

// struct 中只定義成員變量 interface 只定義方法
// 在外面定義了interface 中所有的方法後就可看做實現了interface這就是ducktype
// duck_type 實現了這個接口的所有方法就是這個接口(走起來是鴨子叫起來是鴨子那就就是鴨子)
type Bird struct {
	words string
	isBig bool
}

func (bird Bird) speak(){
	fmt.Println(bird.words)
}
func (bird Bird) big() bool{
	return bird.isBig
}

func talk(animal Animal) {
	animal.speak()
}
func main() {
	var bird Animal
	bird = Bird{"I'm a bird", false}
	talk(bird)
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章