Junior — Middle
Können Sie das Prinzip der Vererbung erklären und wie es in der Programmiersprache Go umgesetzt wird?
sobes.tech KI
Antwort von AI
In der Programmiersprache Go gibt es keine klassische Vererbung wie in anderen objektorientierten Sprachen. Stattdessen verwendet Go Komposition und Embedding, um Code wiederzuverwenden und Funktionalitäten zu erweitern.
Embedding ermöglicht es, einen Typ (Struktur) in einen anderen einzubetten, wobei die Methoden des eingebetteten Typs für den äußeren Typ zugänglich werden, was einer Vererbung ähnelt.
Beispiel:
type Animal struct {
Name string
}
func (a Animal) Speak() string {
return "..."
}
// Einbetten von Animal in Dog
type Dog struct {
Animal
}
func (d Dog) Speak() string {
return "Wuff!"
}
func main() {
dog := Dog{Animal{Name: "Buddy"}}
fmt.Println(dog.Name) // Zugriff auf das Animal-Feld
fmt.Println(dog.Speak()) // Überschriebene Methode
}
Auf diese Weise erreicht Go einen ähnlichen Effekt wie Vererbung durch Komposition und Embedding und vermeidet die Komplexitäten einer klassischen Hierarchie.