我有以下内容:
type Base struct {
}
func(base *Base) Get() string {
return "base"
}
func(base *Base) GetName() string {
return base.Get()
}
我想定义一个新类型,并使用新的Get()实现,以便可以在原有代码中将该新类型替换Base,并且调用GetName()时可以调用新的Get()实现。如果我使用Java,我会继承Base并重写Get()。那么在Go中,我应该如何实现呢?如果可能的话,我希望避免破坏性更改,这样就不需要更改现有Base的使用者。
我尝试的第一步看起来像是...
type Sub struct {
Base
}
func(sub *Sub) Get() string {
return "Sub"
}
...这并不奏效。我的大脑还没有完全适应Go语言。