Junior — Middle
Welche gemeinsamen Merkmale verbinden Klassen und Schnittstellen in der objektorientierten Programmierung?
sobes.tech KI
Antwort von AI
Klassen und Schnittstellen in der objektorientierten Programmierung teilen mehrere gemeinsame Merkmale:
- Abstraktion: Beide ermöglichen die Beschreibung abstrakter Datentypen, indem sie Implementierungsdetails verbergen.
- Verhaltensdefinition: Sowohl Klassen als auch Schnittstellen legen eine Reihe von Methoden fest, die implementiert werden müssen.
- Polymorphismus: Durch Klassen und Schnittstellen kann polymorphes Verhalten realisiert werden, das die einheitliche Nutzung von Objekten verschiedener Typen erlaubt.
- Typisierung: Beide dienen der Definition von Typen, die zur Deklaration von Variablen und Funktionsparametern verwendet werden können.
In Go definieren Schnittstellen eine Reihe von Methoden, und es gibt keine Klassen im eigentlichen Sinne, aber Strukturen mit Methoden erfüllen die Rolle von Klassen. Schnittstellen beschreiben das Verhalten, und Strukturen enthalten Daten und Implementierung.
Beispiel in Go:
// Schnittstelle
type Reader interface {
Read(p []byte) (n int, err error)
}
// Struktur mit Methode, die die Schnittstelle implementiert
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// Implementierung
return 0, nil
}
func main() {
var r Reader = File{}
r.Read(nil)
}