Junior — Middle
Welke gemeenschappelijke kenmerken verbinden klassen en interfaces in objectgeoriënteerd programmeren?
sobes.tech AI
Antwoord van AI
Klassen en interfaces in objectgeoriënteerd programmeren delen verschillende gemeenschappelijke kenmerken:
- Abstractie: Beide stellen je in staat om abstracte datatypes te beschrijven, waarbij implementatiedetails worden verborgen.
- Gedragsdefinitie: Zowel klassen als interfaces definiëren een set methoden die geïmplementeerd moeten worden.
- Polymorfisme: Via klassen en interfaces kan polymorf gedrag worden geïmplementeerd, waardoor objecten van verschillende typen op een uniforme manier kunnen worden gebruikt.
- Typecasting: Beide worden gebruikt om typen te definiëren die kunnen worden gebruikt voor het declareren van variabelen en functiedeclaraties.
In Go definiëren interfaces een set methoden, en er is geen echte klasse, maar structuren met methoden fungeren als klassen. Interfaces beschrijven gedrag, en structs bevatten gegevens en implementatie.
Voorbeeld in Go:
// Interface
type Reader interface {
Read(p []byte) (n int, err error)
}
// Struct met een methode die de interface implementeert
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// implementatie
return 0, nil
}
func main() {
var r Reader = File{}
r.Read(nil)
}