1、重命名并增加新的方法
type student struct {
name string
sex int
}
type monitor student//可以添加方法,但不可以增加字段
func (t *monitor) getName() string {
return t.name
}
func main() {
person1 := monitor{name: "xiao", sex: 1}
fmt.Println(person1)
fmt.Println(person1.getName())
}
输出:
{xiao 1}
xiao
2、重命名并实现接口
type Person interface {
getName() string
}
type student struct {
name string
sex int
}
type monitor student
func (t monitor) getName() string {
return t.name
}
func main() {
var person Person
person = monitor{name: "xiao", sex: 1}
fmt.Println(person)
fmt.Println(person.getName())
}
输出
{xiao 1}
xiao
3、应用
背景:已存在结构体student 和 staff,在不改动原来代码的情况下(项目代码不能随意更改),需要使他们同时实现 Person 接口