Junior — Middle
Kako se u jeziku Go realizuje mehanizam nasleđivanja i koja je njegova implementacija?
sobes.tech АИ
Одговор од АИ
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 podataka.
-
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.