Junior — Middle
Πώς υλοποιείται ο μηχανισμός κληρονομιάς στη γλώσσα Go και ποια είναι η υλοποίησή του;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go δεν υπάρχει κλασική κληρονομικότητα, όπως σε γλώσσες προσανατολισμένες σε αντικείμενα. Αντί αυτού, χρησιμοποιούνται σύνθεση και διεπαφές.
-
Σύνθεση: Αντί να κληρονομήσετε δομές, μπορείτε να συμπεριλάβετε μια δομή σε μια άλλη. Αυτό επιτρέπει την "ενσωμάτωση" συμπεριφοράς και δεδομένων.
-
Διεπαφές: Η Go χρησιμοποιεί διεπαφές για την περιγραφή συμπεριφοράς. Κάθε δομή που υλοποιεί τις μεθόδους μιας διεπαφής θεωρείται ότι την υλοποιεί.
Παράδειγμα σύνθεσης:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "μιλάει")
}
type Dog struct {
Animal // ενσωμάτωση της δομής Animal
}
func main() {
d := Dog{Animal{Name: "Bobby"}}
d.Speak() // καλεί τη μέθοδο Animal
}
Έτσι, η Go προάγει τη χρήση σύνθεσης και διεπαφών αντί της κλασικής κληρονομικότητας.