Sobes.tech
Junior — Middle

Leg uit hoe het mechanisme en de kenmerken van erfelijkheid werken in objectgeoriënteerd programmeren.

sobes.tech AI

Antwoord van AI

In objectgeoriënteerd programmeren (OOP) maakt erfelijkheid het mogelijk om een nieuwe klasse te creëren op basis van een bestaande, waarbij eigenschappen en methoden worden overgenomen. Dit bevordert hergebruik van code en hiërarchische organisatie van objecten.

Kenmerken van erfelijkheid:

  • Klassehiërarchie: subklasse (erfgenaam) breidt uit of overschrijft het gedrag van de superklasse (ouder).
  • Polymorfisme: objecten van de subklasse kunnen worden gebruikt waar een object van de superklasse wordt verwacht.
  • Encapsulatie: erfelijkheid schendt niet het principe van gegevensverbergings, maar de subklasse heeft toegang tot beschermde en openbare leden van de superklasse.

In Go bestaat geen directe klasse-erfelijkheid, maar er zijn compositie en interfaces die vergelijkbare patronen mogelijk maken.

Voorbeeld in Go met compositie:

 type Animal struct {
    Name string
}

func (a Animal) Speak() string {
    return "..."
}

// Dog "erft" van Animal via embedding
// en kan de Speak-methode overschrijven

type Dog struct {
    Animal
}

func (d Dog) Speak() string {
    return "Woof!"
}

func main() {
    dog := Dog{Animal{Name: "Buddy"}}
    fmt.Println(dog.Name)      // Buddy
    fmt.Println(dog.Speak())   // Woof!
}