Sobes.tech
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)
 }