Golang-Methodenüberschreibung
In Go wird das Konzept der Methodenüberschreibung durch Schnittstellen und nicht durch Vererbung wie in Java erreicht. Schnittstellen definieren einen Methodenvertrag, ohne deren Implementierung anzugeben.
Methodenüberschreibung in Go implementieren:
Schnittstellen verwenden:
Beispiel:
// Interface for Get() method type Getter interface { Get() string } // Base type with original implementation type Base struct{} func (base *Base) Get() string { return "base" } // Custom type with overriding implementation type Sub struct { Base } func (sub *Sub) Get() string { return "Sub" }
Vorteil:
Alternativer Ansatz mit Komposition:
Beispiel:
// Sub type with composition type Sub struct { Base custom string } func (sub *Sub) Get() string { // Access the original method via embedded Base if sub.custom == "" { return sub.Base.Get() } return sub.custom }
Vorteil:
Hinweis:
Das obige ist der detaillierte Inhalt vonWie erreicht Go das Überschreiben von Methoden ohne traditionelle Vererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!