Ich habe folgendes:Golang Methode außer Kraft setzen
type Base struct {
}
func(base *Base) Get() string {
return "base"
}
func(base *Base) GetName() string {
return base.Get()
}
Ich möchte einen neuen Typ mit einer neuen Implementierung von Get() definieren, so dass ich den neuen Typ anstelle von Base
verwenden können und wo GetName() heißt es ruft die neue Get() Implementierung auf. Wenn ich Java benutze, würde ich Base erben und Get() außer Kraft setzen. Wie soll ich das in Go erreichen? Ich möchte Änderungen möglichst vermeiden, damit bestehende Base-Kunden nicht geändert werden müssen.
Mein erster Stich an das sieht aus wie ..
type Sub struct {
Base
}
func(sub *Sub) Get() string {
return "Sub"
}
..welche nicht funktioniert. Mein Gehirn ist noch nicht klar für Go.
Mögliche Duplikat von [ Ist es möglich, eine überschriebene Methode von einer übergeordneten Struktur in golang aufzurufen?] (http: // stacko verflow.com/questions/21251242/is-it-possible-to-call-overridden-method-from-parent-struct-in-golang) – Vadyus
Go hat keine Vererbung, noch hat es Generika. Wenn etwas den Typ 'Base' erwartet, können Sie das nicht mit einem anderen Typ angeben. – JimB