Junior — Middle
Is het mogelijk om een erfmechanisme te implementeren in de Go-taal?
sobes.tech AI
Antwoord van AI
In de programmeertaal Go bestaat geen klassieke overerving zoals in objectgeoriënteerde talen zoals Java of C++. In plaats daarvan gebruikt Go compositie en embedding van structuren om code hergebruik en functionaliteit uit te breiden.
Bijvoorbeeld, je kunt één structuur in een andere embedden, en de methoden van de embedded structuur worden toegankelijk via de externe structuur:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "spreekt")
}
type Dog struct {
Animal // embedding van de structuur Animal
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // roept de Speak-methode van de Animal-structuur aan
}
Op deze manier bereikt men in Go een gedrag dat lijkt op overerving, maar wordt gerealiseerd via compositie, wat een meer flexibel en eenvoudig ontwerp bevordert.