package main import "fmt" type Person struct { Name string } func (p Person) Say() { fmt.Println("Hi, my name is", p.Name) } type Student struct { Person Semester int } type Teacher struct { Person Subject string } func main() { max := Person{"Max"} daniel := Student{Person{"Daniel"}, 3} sebastian := Teacher{Person{"Sebastian"}, "PR3"} max.Say() daniel.Say() sebastian.Say() max = sebastian.Person max.Say() }