forked from steger/pr3-ws202526
41 lines
570 B
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()
|
|
}
|