Heim >Backend-Entwicklung >Golang >Wie überschreibe ich Methoden in Golang?
Das Überschreiben von Methoden in Go ermöglicht die Bereitstellung einer neuen Implementierung einer Basistypmethode in einem abgeleiteten Typ, ohne den Basistyp zu ändern: Syntax: func (t TipoRicevente) NomeMetodo(parametri...) tipoDiRetornoTipoRicevente muss mit dem Namen des Typs übereinstimmen, in dem die Methode befindet sich. Überschriebene Methoden müssen dieselbe Signatur haben (Name, Parameter, Rückgabetyp), können jedoch keine Parameter oder Rückgabetypen ändern. Dies ist nur möglich, wenn der Typ einen Schnittstellentyp hat oder darin eingebettet ist ein anderer Typ. Methoden überschreiben
Methoden in Go überschreiben
Methoden überschreiben bedeutet, Methoden im Basistyp im abgeleiteten Typ neu zu definieren. Dadurch können Sie eine andere oder erweiterte Implementierung für einen abgeleiteten Typ bereitstellen, ohne den Basistyp selbst zu ändern.
Syntax
Um eine Methode in Go zu überschreiben, müssen Sie das Schlüsselwort func
verwenden. Es ist der Basistyp von Animal
, das eine Methode namens hat Essen
. Um die Methode Eat
in einem abgeleiteten Typ namens Dog
zu überschreiben, können Sie die folgende Syntax verwenden: func
关键字 seguito dal nome del tipo su cui sta sovrascrivendo il metodo:
func (t TipoRicevente) NomeMetodo(parametri...) tipoDiRetorno
例如,假设您有一个名为 Animal
的基类型,其中有一个名为 Eat
的方法。要在名为 Dog
的派生类型中重写 Eat
方法,可以使用以下语法:
func (d Dog) Eat() { // Implementazione personalizzata }
注意:TipoRicevente
应该与方法所在类型的类型名称匹配。
实战案例
考虑以下示例:
package main import "fmt" type Animal interface { Eat() } type Dog struct{} func (d Dog) Eat() { fmt.Println("Woof, woof!") } func main() { dog := Dog{} dog.Eat() }
在该示例中,Dog
类型实现了 Animal
接口中的 Eat
Woof, woof!Hinweis:
TipoRicevente
sollte gleich sein als Methode Der Typname des Typs stimmt überein. Praktischer Fall
Dog
das Eat
im Animal
Schnittstellenmethode. Wenn Sie dieses Programm ausführen, wird die folgende Ausgabe ausgegeben: Das obige ist der detaillierte Inhalt vonWie überschreibe ich Methoden in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!