package mainimport "fmt"// User 自定义结构体type User struct { name string age int}// SetAge 私有属性提供set方法进行修改func (user *User) SetAge(age int) { user.age = age}// GetAge 私有属性提供get方法进行属性获取func (user *User) GetAge() int { return user.age}// SetName 私有属性提供set方法进行修改func (user *User) SetName(name string) { user.name = name}// GetName 私有属性提供get方法进行属性获取func (user *User) GetName() string { return user.name}func (user *User) showName() { fmt.Println("我的名字叫", user.name)}type SuperUser struct { //继承父类User User //能力 ability string}// showName 重写父类方法func (superUser *SuperUser) showName() { fmt.Println("我的名字叫", superUser.name+"超人")}// showAbility 子类新定义方法func (superUser *SuperUser) showAbility() { fmt.Println("我的能力是", superUser.ability)}func main() { var user = User{name: "张三", age: 24} var superUser = SuperUser{user, "放火"} var superUser1 = SuperUser{User{"李四", 24}, "放电"} superUser.showName() superUser1.showName() superUser.showAbility() superUser1.showAbility()}