2
1
Fork 0
pr3-ws202526/go/02-next-level/02-struct-embedding.go

41 lines
570 B
Go

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 //struct Person is embedded
Semester int
}
type Teacher struct {
Person //struct Person is embedded
Subject string
}
func main() {
max := Person{"Max"}
daniel := Student{Person{"Daniel"}, 3}
sebastian := Teacher{Person{"Sebastian"}, "PR3"}
max.Say()
daniel.Say() //can be invoked directly on Student
sebastian.Say() //can be invoked directly on Teacher
max = sebastian.Person
max.Say()
}