热门IT资讯网

Go中匿名字段的方法继承与方法重写

发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,// code_019_struct_anonymous_field_method project main.gopackage mainimport ( "fmt")type Person s
// code_019_struct_anonymous_field_method project main.gopackage mainimport (    "fmt")type Person struct {    name string    sex  byte    age  int}func (p *Person) PrintInfo() {    fmt.Printf("Person:%s,%c,%d\n", p.name, p.sex, p.age)}type Student struct {    Person    id   int    addr string}//方法被重写,但是不能被重载;若未被重写,则继承匿名字段的方法func (s *Student) PrintInfo() {    fmt.Printf("Student:%s,%c,%d\n", s.name, s.sex, s.age)}func main() {    p := Person{"ck_god", 'm', 18}    p.PrintInfo()    s := Student{Person{"god_girl", 'f', 20}, 2, "sz"}    s.PrintInfo()    s.Person.PrintInfo()}

运行结果如下:

Person:ck_god,m,18Student:god_girl,f,20Person:god_girl,f,20
0