Sobes.tech
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 προάγει τη χρήση σύνθεσης και διεπαφών αντί της κλασικής κληρονομικότητας.