go语言的组合和继承

在One结构体中,有一个字段为m类型是monkey,
在Two结构体中,有一匿名字段monkey,two加了这个等于实现了Animal,对于animal就有了两个实现mokey和One
One ,Two 两个结构体有细微差别,One 是组合,Two就是继承,Animal就有两个实现 monkey 和 Two

代码如下(示例):

type Animal interface {
	Run()
}

type monkey struct {
}

func (m monkey) Run() {
	fmt.Println("monkey run")
}

// 组合
type One struct {
	m monkey
}

// 继承
type Two struct {
	monkey
}