1. 程式人生 > >Go中匿名字段的方法繼承與方法重寫

Go中匿名字段的方法繼承與方法重寫

string 不能被重載 ring 運行 imp 匿名字段 ack pack pac

// code_019_struct_anonymous_field_method project main.go package main import ( "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,18
Student:god_girl,f,20
Person:god_girl,f,20

Go中匿名字段的方法繼承與方法重寫