怎么知道Dog和Cat就實現(xiàn)了Behavior接口呢?
這樣寫的確是實現(xiàn)了多態(tài),但Dog和Cat并沒有顯式實現(xiàn)Behavior這個接口,而編譯器就已經(jīng)將其做了關聯(lián)。為什么不需要像Java一樣的implements 顯式實現(xiàn)接口?
func?main()?{ ???dog?:=?Dog{Name:?"wangwang",?Age:?2} ???cat?:=?Cat{Name:?"mimi",?Age:?2} ???fmt.Println(dog.Eat()) ???fmt.Println(dog.Run()) ???fmt.Println(cat.Eat()) ???fmt.Println(cat.Run()) } type?Animal?struct?{ ???Kind?string } type?Cat?struct?{ ???Animal ???Name?string ???Age?int } func?(cat?*Cat)?Eat()?string?{ ???return?"cat:?eat" } func?(cat?*Cat)?Run()?string?{ ???return?"cat:?run" } type?Dog?struct?{ ???Animal ???Name?string ???Age?int } func?(dog?*Dog)?Eat()?string?{ ???return?"dog:?eat" } func?(cat?*Dog)?Run()?string?{ ???return?"dog:?run" } type?Behavior?interface?{ ???Eat()?string ???Run()?string }
2020-12-24
點擊一下接口方法 能跳過去 就說明實現(xiàn)了唄