Sobes.tech
Junior — Middle

Ako je v jazyku Go realizovaný mechanizmus dedičnosti a aká je jeho implementácia?

sobes.tech AI

Odpoveď od AI

U jeziku Go ne postoji klasično nasleđivanje, kao u objektno-orijentisanim jezicima. Umesto toga, koristi se kompozicija i interfejsi.

  • Kompozicija: Umesto nasleđivanja struktura, možete uključiti jednu strukturu u drugu. Ovo omogućava "ugrađivanje" ponašanja i података.

  • Interfejsi: Go koristi interfejse za opisivanje ponašanja. Svaka struktura koja implementira metode interfejsa smatra se njegovom implementacijom.

Primer kompozicije:

package main

import "fmt"

type Animal struct {
    Name string
}

func (a Animal) Speak() {
    fmt.Println(a.Name, "govori")
}

type Dog struct {
    Animal // uključivanje strukture Animal
}

func main() {
    d := Dog{Animal{Name: "Bobby"}}
    d.Speak() // poziva metodu Animal
}

Na ovaj način, Go podstiče korišćenje kompozicije i interfejsa umesto klasičnog nasleđivanja.