package main import ( "fmt" ) //运动员和学生结构体(父类) type Athletes struct{ Name string } type Student struct{ Name string } //声明接口 type EnglishAble interface{ EngStudying() } //子类 type Hoopster struct{ Athletes } type Footster struct{ Athletes } type Undergraduate struct{ Student } type MiddleStudent struct{ Student } func(athletes *Athletes)Ableing(){ fmt.Println(athletes.Name, "运动员具备运动员的能力") } func(student *Student)Studinging(){ fmt.Println(student.Name, "学生要努力学习......") } //足球运动员,大学生掌握英语能力 func (footster *Footster)EngStudying(){ fmt.Println(footster.Name, "足球运动员需要掌握英语能力") } func (undergraduate *Undergraduate)EngStudying(){ fmt.Println(undergraduate.Name, "大学生需要掌握英语能力") } func main(){ //创建对应的实例 hoopster := Hoopster{ Athletes{ Name : "姚明", }, } footster := Footster{ Athletes{ Name : "贝克汉姆", }, } hoopster.Ableing() footster.Ableing() footster.EngStudying() middlestudent := MiddleStudent{ Student{ Name : "昭明", }, } undergraduate := Undergraduate{ Student{ Name : "悦瑶", }, } middlestudent.Studinging() undergraduate.Studinging() undergraduate.EngStudying() }