在golang中,采用匿名结构体字段来模拟继承关系。这个时候,可以说 Student 是继承自 Person .

type Person struct {
name string
age int
sex string
}

func (Person) SayHello(){
fmt.Println("this is from Person")
}

type Student struct {
Person
school string
}

func main() {
stu := Student{school:"middle"}
stu.name = "leo"
stu.age = 30
fmt.Println(stu.name) //这里其实就是这样做了一层转换stu.Person.name
stu.SayHello() //也做了转换
}

可以看到继承之后的结构体拥有继承结构体的属性和方法。

其实本质上是嵌套关系,它帮你简化了。