继承
/* 继承
一个结构体嵌到另一个结构体,称作组合
匿名和组合的区别
如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问匿名结构体的方法,从而实现继承
如果一个struct嵌套了另一个【有名】的结构体,那么这个模式叫做组合
如果一个struct嵌套了多个匿名结构体,那么这个结构可以直接访问多个匿名结构体的方法,从而实现多重继承 */
方法的继承
type Action interface {
FlyAction()
RunAction()
}
type Bird struct { //鸟继承Action
Action
}
type Dog stuct { //狗继承Action
Action
}
func main(){
bird := new(Bird)
bird.RunAction()
}
成员的继承
type Person struct {
Name string
Age int
}
type Man struct {
Person
}
func main() {
man := Man{Person{Name: "xiaoming"}}
fmt.Printf("My Name is %s", man.Name)
}