Cosa è eredità nel golang

Cosa è eredità nel golang
Nella programmazione orientata agli oggetti, l'eredità si riferisce alla capacità di una sottoclasse di ereditare le proprietà di una classe genitore. Usando l'eredità, possiamo riutilizzare o modificare le proprietà della classe genitore, che si traducono in un codice più modulare. Tuttavia, a Golang, l'eredità non è direttamente supportata a causa delle classi mancanti. Questo articolo copre il modo in cui si può ottenere l'eredità in Golang.

Ereditarietà in Golang

L'eredità in Golang è un modo per creare una classe figlio che è una versione modificata di una classe esistente o genitore. La classe appena creata prende le proprietà della classe genitore esistente. La classe sottoclasse o figlio può anche modificare o aggiungere alcune nuove proprietà nella classe principale.

Sintassi per ereditare in Golang

Per ereditare da una classe genitore a Golang, usiamo il strumento parola chiave e incorporare la classe genitore all'interno della classe figlio. Ecco un esempio:

Digita la struttura genitore
Proprietà1 String
Proprietà2 int

Tipo bambino struct
Genitore
Proprietà3 float32

La sintassi sopra ha una struttura figlio che incorpora la struttura genitore, il che significa che eredita tutte le sue proprietà e i suoi metodi. The Child Struct ha anche una nuova proprietà chiamata Property3.

Perché Golang non supporta l'eredità

Nella programmazione tradizionale orientata agli oggetti, l'eredità è un concetto fondamentale che prevede le proprietà ereditarie da una classe genitore a una classe figlio. Tuttavia, da quando Golang non supporta le lezioni, L'eredità è implementata utilizzando l'incorporamento della struttura.

In Golang, le strutture non possono essere estese direttamente, quindi utilizziamo la composizione per costruire nuovi oggetti usando il strumento. Pertanto, è accurato affermare che Golang non fornisce supporto nativo per l'eredità, ma supporta piuttosto la composizione come alternativa.

Come ottenere l'eredità nel golang usando l'incorporamento structing

In Golang, l'eredità si ottiene attraverso un meccanismo chiamato Incorporamento della struttura. Questo ci consente di incorporare una struttura all'interno di un'altra, che si traduce in una relazione come un genitore e una classe figlio. La struttura figlio può quindi accedere ai campi e ai metodi della struttura genitore, come se facessero parte della propria definizione.

Ecco un esempio di come ottenere l'eredità in Golang usando l'incorporamento di strutture:

tipo persona struct
Nome String
età int

Tipo Struttura dei dipendenti
Persona // incorporare la struttura della persona all'interno della struttura dei dipendenti
empid int
Stipendio Float64

Nel codice sopra, la struttura della persona è incorporata dalla struttura dei dipendenti usando il nome del campo della persona senza un tipo, il che implica che sta incorporando la struttura stessa. Questo crea una relazione genitore-figlio tra le due strutture, in cui la struttura dei dipendenti è il bambino e la struttura è il genitore.

Ora, è possibile accedere a tutti i campi o metodi definiti nella struttura della persona dalla struttura dei dipendenti. Ad esempio, possiamo accedere al campo Nome della persona struttura dalla struttura dei dipendenti usando la notazione DOT:

e: = dipendente persona nome: "kash", età: 24, 20, 1000
fmt.Println (e.nome)

Allo stesso modo, possiamo definire i metodi nella struttura di persona a cui è possibile accedere dalla struttura dei dipendenti:

func (p *persona) presenta ()
fmt.Printf ("Ciao, mi chiamo %s e ho %di anni.\ n ", p.nome, p.età)

func main ()
e: = dipendente persona nome: "kash", età: 24, 20, 1000
e.introdurre()

Esempio 1: programma Golang per mostrare l'eredità nell'incorporamento delle strutture

Pacchetto principale
Importa "FMT"
tipo persona struct
Nome String
età int

Tipo Struttura dei dipendenti
Persona // incorporare la struttura della persona all'interno della struttura dei dipendenti
empid int
Stipendio Float64

func (p *persona) presenta ()
fmt.Printf ("Ciao, mi chiamo %s e ho %di anni.\ n ", p.nome, p.età)

func (e *dipendente) presenta ()
fmt.Printf ("Ciao, mi chiamo %s e ho %di anni. Il mio ID dipendente è %d e il mio stipendio è $ %.2f.\ n ", e.nome, e.età, e.empid, e.stipendio)

func main ()
e: = dipendente persona nome: "kash", età: 24, 20, 1000
fmt.Println (e.nome)
e.introdurre()

Qui, abbiamo definito una struttura di persona e una struttura per i dipendenti che incorpora la struttura della persona. Definiamo quindi il introdurre() Metodo sulla struttura della persona, a cui possiamo accedere dalla struttura dei dipendenti. In Main (), abbiamo creato una nuova istanza dei dipendenti e dimostrato come possiamo accedere ai campi e ai metodi della persona incorporata.

Esempio 2: programma Golang per mostrare molte eredità a una struttura

Pacchetto principale
Importa "FMT"
tipo persona struct
Nome String
età int

Digita Student struct
Persona // incorporare la struttura della persona all'interno dello studente struct
rollno int

tipo insegnante struct
Persona // incorporare la persona struttura all'interno della struttura dell'insegnante
empid int

func (p *persona) presenta ()
fmt.Printf ("Ciao, mi chiamo %s e ho %di anni.\ n ", p.nome, p.età)

func (s *studente) studio ()
fmt.Printf ("%s sta studiando.\ n ", s.nome)

func (t *insegnante) insegnante ()
fmt.Printf ("%s sta insegnando.\ n ", t.nome)

func main ()
S: = Student Person Nome: "Kash", età: 24, 1001
T: = insegnante persona nome: "Sam", età: 30, 2001
S.introdurre()
S.studio()
T.introdurre()
T.insegnare()

Nell'esempio sopra, definiamo una struttura di persona e altre due strutture, studente e insegnante, che incorporano la persona struttura. Definiamo anche i metodi introduttivi (), studio () e insegniamo () sulla persona, studente e strutture per insegnanti, rispettivamente.

In Main (), abbiamo creato nuovi casi di studente e insegnante e abbiamo dimostrato come possiamo accedere ai campi e ai metodi della struttura della persona incorporata, nonché ai metodi specifici per ogni struttura.

Conclusione

L'eredità è un concetto essenziale nella programmazione orientata agli oggetti e Golang fornisce supporto per una singola eredità attraverso l'incorporamento delle strutture. Per l'eredità multipla in Golang, viene utilizzato il metodo di composizione. Questo articolo copre il modo in cui possiamo ottenere l'eredità usando il metodo di composizione in Golang. Per ulteriori dettagli sull'eredità di Golang, leggi l'articolo.