Junior — Middle
Jaké společné rysy spojují třídy a rozhraní v objektově orientovaném programování?
sobes.tech AI
Odpověď od AI
Třídy a rozhraní v objektově orientovaném programování sdílejí několik společných rysů:
- Abstrakce: Obě umožňují popisovat abstraktní datové typy, skrývají detaily implementace.
- Definice chování: Jak třídy, tak rozhraní stanovují sadu metod, které musí být implementovány.
- Polymorfismus: Přes třídy a rozhraní lze realizovat polymorfní chování, umožňující jednotné použití objektů různých typů.
- Typování: Obě slouží k definování typů, které lze použít pro deklaraci proměnných a parametrů funkcí.
V Go rozhraní definují sadu metod, a není zde třída jako taková, ale struktury s metodami plní roli tříd. Rozhraní popisují chování, a struktury obsahují data a implementaci.
Příklad v Go:
// Rozhraní
type Reader interface {
Read(p []byte) (n int, err error)
}
// Struktura s metodou, která implementuje rozhraní
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// implementace
return 0, nil
}
func main() {
var r Reader = File{}
r.Read(nil)
}