go 面试题
package main import ( "fmt" ) type People struct{} func (p *People) ShowA() { fmt.Println("showA") p.ShowB() } func (p *People) ShowB() { fmt.Println("showB") } type Teacher struct { People } func (t *Teacher) ShowB() { fmt.Println("teacher showB") } func main() { t := Teacher{} t.ShowA() }
╭─mac@macdeMacBook-Pro ~/www/go/im ‹master*›
╰─$ go run main.go
showA
showB
解析:
输出结果为 、 。golang 语言中没有继承概念,只有组合,也没有虚方 法,更没有重载。因此, 的 不会覆写被组合的 的方法
输出结果为 、 。golang 语言中没有继承概念,只有组合,也没有虚方 法,更没有重载。因此, 的 不会覆写被组合的 的方法