Junior — Middle
Milyen közös jellemzők kötik össze az osztályokat és az interfészeket az objektum-orientált programozásban?
sobes.tech MI
Válasz az MI-től
Az objektumorientált programozásban az osztályok és az interfészek több közös jellemzőt osztanak meg:
- Absztrakció: Mindkettő lehetővé teszi absztrakt adattípusok leírását, elrejtve a megvalósítás részleteit.
- Viselkedés meghatározása: Mind az osztályok, mind az interfészek meghatároznak egy módszerek halmazát, amelyeket meg kell valósítani.
- Polimorfizmus: Osztályokon és interfészeken keresztül megvalósítható a polimorf viselkedés, lehetővé téve különböző típusú objektumok egységes használatát.
- Típusosítás: Mindkettő a típusok meghatározására szolgál, amelyeket változók és függvényparaméterek deklarálására lehet használni.
Go nyelvben az interfészek egy módszerek halmazát határozzák meg, és nincs osztály, de metódusokkal rendelkező struktúrák osztályként működnek. Az interfészek leírják a viselkedést, a struktúrák pedig az adatokat és a megvalósítást.
Példa Go nyelven:
// Interfész
type Reader interface {
Read(p []byte) (n int, err error)
}
// Struktúra, amely megvalósítja az interfészt
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// megvalósítás
return 0, nil
}
func main() {
var r Reader = File{}
r.Read(nil)
}