1. package main
    2. import "fmt"
    3. // User 自定义结构体
    4. type User struct {
    5. name string
    6. age int
    7. }
    8. // SetAge 私有属性提供set方法进行修改
    9. func (user *User) SetAge(age int) {
    10. user.age = age
    11. }
    12. // GetAge 私有属性提供get方法进行属性获取
    13. func (user *User) GetAge() int {
    14. return user.age
    15. }
    16. // SetName 私有属性提供set方法进行修改
    17. func (user *User) SetName(name string) {
    18. user.name = name
    19. }
    20. // GetName 私有属性提供get方法进行属性获取
    21. func (user *User) GetName() string {
    22. return user.name
    23. }
    24. func (user *User) showName() {
    25. fmt.Println("我的名字叫", user.name)
    26. }
    27. type SuperUser struct {
    28. //继承父类User
    29. User
    30. //能力
    31. ability string
    32. }
    33. // showName 重写父类方法
    34. func (superUser *SuperUser) showName() {
    35. fmt.Println("我的名字叫", superUser.name+"超人")
    36. }
    37. // showAbility 子类新定义方法
    38. func (superUser *SuperUser) showAbility() {
    39. fmt.Println("我的能力是", superUser.ability)
    40. }
    41. func main() {
    42. var user = User{name: "张三", age: 24}
    43. var superUser = SuperUser{user, "放火"}
    44. var superUser1 = SuperUser{User{"李四", 24}, "放电"}
    45. superUser.showName()
    46. superUser1.showName()
    47. superUser.showAbility()
    48. superUser1.showAbility()
    49. }