Was ist Vererbung in Golang

Was ist Vererbung in Golang
In der objektorientierten Programmierung bezieht sich die Vererbung auf die Fähigkeit einer Unterklasse, die Eigenschaften einer übergeordneten Klasse zu erben. Mithilfe der Vererbung können wir die Eigenschaften der Elternklassen wiederverwenden oder ändern, was zu einem modulareren Code führt. In Golang wird die Erbschaft jedoch aufgrund fehlender Klassen jedoch nicht direkt unterstützt. Dieser Artikel behandelt, wie man die Vererbung in Golang erreichen kann.

Vererbung in Golang

Vererbung in Golang ist eine Möglichkeit, eine untergeordnete Klasse zu erstellen, die eine modifizierte Version einer vorhandenen oder übergeordneten Klasse ist. Die neu erstellte Klasse nimmt die Eigenschaften der vorhandenen übergeordneten Klasse an. Die Unterklasse oder die untergeordnete Klasse kann auch einige neue Eigenschaften in der übergeordneten Klasse ändern oder hinzufügen.

Syntax zum Erben in Golang

Um von einer übergeordneten Klasse in Golang zu erben, verwenden wir die Struktur Schlüsselwort und die übergeordnete Klasse in der untergeordneten Klasse einbetten. Hier ist ein Beispiel:

Geben Sie die Elternstruktur ein
Eigenschaft1 String
Property2 int

Geben Sie untergeordnete Struktur ein
Elternteil
Property3 Float32

Die obige Syntax hat eine untergeordnete Struktur, die die Elternstruktur einbettet, was bedeutet, dass sie alle Eigenschaften und Methoden erbt. Die Kinderstruktur verfügt auch über eine neue Immobilie namens Property3.

Warum Golang die Erbschaft nicht unterstützt

In traditionellen objektorientierten Programmierung ist die Vererbung ein grundlegendes Konzept, das die Erbungseigenschaften von einer übergeordneten Klasse zu einer Kinderklasse beinhaltet. Aber seit Golang unterstützt keine Klassen, Die Vererbung wird unter Verwendung der Struktureinbettung implementiert.

In Golang können Strukturen nicht direkt erweitert werden. Daher verwenden wir die Zusammensetzung, um neue Objekte mithilfe der zu konstruieren Struktur. Daher ist es genau zu sagen, dass Golang keine native Unterstützung für die Vererbung bietet, sondern die Komposition als alternative Unterstützung unterstützt.

Wie man die Vererbung in Golang mithilfe der Struktureinbettung erreicht

In Golang wird die Vererbung durch einen Mechanismus genannt Struktureinbettung. Dies ermöglicht es uns, eine Struktur in eine andere einzubetten, was zu einer Beziehung wie einer Eltern- und Kinderklasse führt. Die Kinderstruktur kann dann auf die Felder und Methoden der Elternstruktur zugreifen, als ob sie Teil ihrer eigenen Definition wären.

Hier ist ein Beispiel dafür, wie die Vererbung in Golang unter Verwendung von Struct -Einbetten erreicht werden kann:

Typ Person struct
Name Zeichenfolge
Alter int

Geben Sie die Mitarbeiterstruktur ein
Person // Einbettung der Personstruktur innerhalb der Mitarbeiterstruktur
Empid int
Gehalt float64

Im obigen Code wird die Personstruktur durch die Mitarbeiterstruktur unter Verwendung des Feldnamens Person ohne Typ eingebettet, was impliziert, dass sie die Struktur selbst einbettet. Dies schafft eine Eltern-Kind-Beziehung zwischen den beiden Strukturen, in denen die Mitarbeiterstruktur das Kind ist, und die Personstruktur der Elternteil ist.

Nun können auf alle in der Personstruktur definierten Felder oder Methoden aus der Mitarbeiterstruktur zugegriffen werden. Zum Beispiel können wir mit der DOT -Notation auf das Feld des Namens der Person aus der Mitarbeiterstruktur zugreifen:

E: = Mitarbeiter Person Name: "Kash", Alter: 24, 20, 1000
fmt.Println (e.Name)

In ähnlicher Weise können wir Methoden in der Personstruktur definieren, auf die aus der Mitarbeiterstruktur zugegriffen werden kann:

func (p *person) intect ()
fmt.Printf ("Hallo, mein Name ist %s und ich bin %d Jahre alt.\ n ", p.Name, p.Alter)

func main ()
E: = Mitarbeiter Person Name: "Kash", Alter: 24, 20, 1000
e.einführen()

Beispiel 1: Golang -Programm, um Vererbung bei der Struktureinbettung zu zeigen

Paket Main
importieren "fmt"
Typ Person struct
Name Zeichenfolge
Alter int

Geben Sie die Mitarbeiterstruktur ein
Person // Einbettung der Personstruktur innerhalb der Mitarbeiterstruktur
Empid int
Gehalt float64

func (p *person) intect ()
fmt.Printf ("Hallo, mein Name ist %s und ich bin %d Jahre alt.\ n ", p.Name, p.Alter)

func (e *Mitarbeiter) intoucuce ()
fmt.Printf ("Hallo, mein Name ist %s und ich bin %d Jahre alt. Meine Mitarbeiter -ID ist %d und mein Gehalt beträgt % %.2f.\ n ", e.Name, e.Alter, e.Empid, e.Gehalt)

func main ()
E: = Mitarbeiter Person Name: "Kash", Alter: 24, 20, 1000
fmt.Println (e.Name)
e.einführen()

Hier haben wir eine Personstruktur und eine Mitarbeiterstruktur definiert, die die Personstruktur einbettet. Wir definieren dann die einführen() Methode zur Personstruktur, auf die wir von der Mitarbeiterstruktur zugreifen können. In main () haben wir eine neue Mitarbeiterinstanz erstellt und gezeigt, wie wir auf die Felder und Methoden der Struktur der eingebetteten Person zugreifen können.

Beispiel 2: Golang -Programm, um mehrere Erbschaften einer Struktur zu zeigen

Paket Main
importieren "fmt"
Typ Person struct
Name Zeichenfolge
Alter int

Geben Sie Schülerstrukturen ein
Person // Einbettung der Personstruktur innerhalb der Schülerstruktur
Rollno int

Geben Sie Lehrerstrukturen ein
Person // Einbettung der Personstruktur innerhalb der Lehrerstruktur
Empid int

func (p *person) intect ()
fmt.Printf ("Hallo, mein Name ist %s und ich bin %d Jahre alt.\ n ", p.Name, p.Alter)

func (s *student) study ()
fmt.Printf ("%S studiert.\ n ", s.Name)

func (t *lehrer) lehren ()
fmt.Printf ("%s lehrt.\ n ", t.Name)

func main ()
S: = Student Person Name: "Kash", Alter: 24, 1001
T: = Lehrer Person Name: "Sam", Alter: 30, 2001
S.einführen()
S.lernen()
T.einführen()
T.unterrichten()

Im obigen Beispiel definieren wir eine Personstruktur und zwei weitere Strukturen, Schüler und Lehrer, die die Personstruktur einbetten. Wir definieren auch die Methoden "introy (), study () und lehren () zu den Strukturen Person, Schüler und Lehrer.

In Main () haben wir neue Instanzen von Schüler und Lehrer erstellt und gezeigt, wie wir auf die Felder und Methoden der Struktur der eingebetteten Person zugreifen können, sowie die für jede Struktur spezifischen Methoden.

Abschluss

Die Vererbung ist ein wesentliches Konzept in der objektorientierten Programmierung, und Golang unterstützt die einzelne Vererbung durch Struktureinbettung. Für mehrere Vererbung in Golang wird die Zusammensetzungsmethode verwendet. Dieser Artikel behandelt, wie wir die Vererbung unter Verwendung der Zusammensetzungsmethode in Golang erreichen können. Weitere Informationen zur Vererbung in Golang finden Sie im Artikel.