Heim  >  Artikel  >  Backend-Entwicklung  >  Erfahren Sie, wie Sie die Vererbung über Golang implementieren

Erfahren Sie, wie Sie die Vererbung über Golang implementieren

PHPz
PHPzOriginal
2023-04-06 09:12:39655Durchsuche

Im Vergleich zu anderen Sprachen wie C++ und Java ist die Vererbung in der Golang-Sprache möglicherweise schwieriger zu implementieren, aber in der tatsächlichen Entwicklung ist die Vererbung immer noch sehr nützlich. In diesem Artikel werden wir untersuchen, wie die Vererbung über Golang implementiert wird.

Zunächst muss klar sein, dass Golang das Konzept der Vererbung nicht empfiehlt, es aber dennoch möglich ist, Vererbung umzusetzen.

In Golang wird ein der Vererbung ähnliches Konzept durch Komposition umgesetzt. Insbesondere geht es darum, eine neue Struktur zu definieren und andere Strukturen darin einzubetten, sodass Sie die Eigenschaften und Methoden anderer Strukturen erhalten können, ähnlich wie bei der Vererbung.

Im Folgenden zeigen wir anhand einiger einfacher Beispiele, wie man Vererbung durch Komposition umsetzt.

Definieren Sie zunächst eine übergeordnete Klasse:

type Parent struct {
    Name string
}

func (p *Parent) SayHello() {
    fmt.Println("Hello, I am", p.Name)
}

Dann definieren Sie eine Unterklasse:

type Child struct {
    Parent
    Age int
}

func (c *Child) SayHello() {
    fmt.Println("Hello, I am", c.Name, "and I am", c.Age, "years old.")
}

Hier definieren wir eine Child-Struktur und betten die Parent-Struktur darin ein. Die Child-Struktur kann auf die Eigenschaften und Methoden der Parent-Struktur zugreifen. Sie kann die von der Parent-Struktur definierte Methode SayHello() verwenden, sie kann aber auch ihre eigene definierte SayHello()-Methode verwenden.

Als nächstes verwenden wir diese Struktur:

func main() {
    child := Child{
        Parent: Parent{Name: "Jerry"},
        Age:    12,
    }
    child.SayHello()
    child.Parent.SayHello()
}

Wie Sie sehen können, haben wir ein Child-Objekt erstellt und die Name-Eigenschaft mit Parent initialisiert. Anschließend wird die Methode SayHello() des Kindes aufgerufen. Die SayHello()-Methode in der Child-Struktur überschreibt die SayHello()-Methode in der Parent-Struktur, sodass beim Aufruf von child.Parent.SayHello() „Hallo, ich bin Jerry und ich bin 12 Jahre alt“ ausgegeben wird Wird die SayHello()-Methode in der Parent-Struktur nicht überschrieben, wird „Hallo, ich bin Jerry“ ausgegeben.

Anhand der obigen Beispiele ist ersichtlich, dass Vererbung in Golang zwar nicht empfohlen wird, Konzepte, die der Vererbung ähneln, jedoch durch Kombination implementiert werden können. Natürlich muss die Art und Weise, wie diese Methode angewendet wird, je nach Situation ausgewählt werden.

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie die Vererbung über Golang implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn