package main
import "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()
}