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 语言中没有继承概念,只有组合,也没有虚方 法,更没有重载。因此, 的 不会覆写被组合的 的方法

 

 

posted @ 2021-09-13 21:31  brady-wang  阅读(49)  评论(0编辑  收藏  举报