package main
import "fmt"
type person8 struct {
id int
name string
age int
sex string
}
type student8 struct {
person8
class int
score int
addr string
}
func (p *person8) SayHello() {
fmt.Printf("大家好我是:%s,我今年%d岁,我是%s生\n", p.name, p.age, p.sex)
}
//子类对象和父类对象的方法名重名
func (s *student8) SayHello() {
fmt.Printf("大家好我是:%s,我今年%d岁,我是%s生,我的班级是%d,我的成绩是%d\n",
s.name, s.age, s.sex, s.class, s.score)
}
func main() {
stu := student8{person8{1001, "甘夫人", 32, "女"}, 112, 80, "巴蜀"}
//子类对象方法 采用就进原则 使用子类对象方法
//如果子类和父类有相同的方法名 叫方法重写
stu.SayHello()
//父类对象方法
stu.person8.SayHello()
fmt.Println(stu.SayHello)
fmt.Println(stu.person8.SayHello)
}