Programmazione di caratteristiche ereditarie, tipi, esempi

Programmazione di caratteristiche ereditarie, tipi, esempi

IL Eredità nella programmazione orientato agli oggetti È un modo di organizzare oggetti in una gerarchia dal più generale a quello più specifico. È il gadget usato per estendere una classe in un'altra classe, mantenendo un'esecuzione analoga.

Nella maggior parte dei linguaggi orientati alle classi in base a oggetti basati sulla classe, un oggetto creato attraverso l'eredità, chiamato oggetto figlio, ottiene tutte le proprietà e i comportamenti dell'oggetto genitore.

Semplice dimostrazione dell'eredità nell'orientamento agli oggetti. Fonte: Pluke / CC0 Creative Commons CC0 1.0 dominio pubblico universale

Pertanto, è una qualità che rappresenta la relazione tra le diverse classi. L'eredità consente a una classe di avere lo stesso comportamento di un'altra classe e di espandere o adattare quel comportamento per fornire azioni speciali per esigenze specifiche.

L'eredità può aiutare a rappresentare oggetti che hanno alcune differenze e alcune somiglianze nel modo in cui funzionano. Tutte le funzionalità che gli oggetti hanno in comune possono essere inserite in una classe di base e quindi definire una o più sottoclassi con la propria funzionalità personalizzata.

[TOC]

Caratteristiche dell'eredità

L'eredità è una delle caratteristiche chiave della programmazione orientata all'oggetto, che serve a definire una nuova classe da classi esistenti.

Cioè, possono essere derivate nuove classi delle classi di base esistenti, aggiungendo nuove funzionalità. Non devi scrivere da zero. Pertanto, l'eredità fornisce un modo per riutilizzare facilmente il codice esistente.

Se hai già una lezione che fa quasi tutto ciò che desideri, puoi creare una sottoclasse in quale parte del tuo comportamento viene parzialmente cancellata, o forse vengono aggiunte alcune nuove funzionalità.

Una classe derivata eredita tutti i metodi della classe base, tranne i seguenti:

Può servirti: computer analogici: caratteristiche, componenti, tipi

- Costruttori, cacciatorpediniere e costruttori di classe copia.

- Operatori sovraccarichi di classe base.

- Funzioni di base per le lezioni.

Gerarchia

Come fa un albero genealogico, l'eredità serve a formare una gerarchia delle classi. È importante notare che gli attributi determinati per una classe di base saranno automaticamente presenti nella classe derivata. Inoltre, i metodi per la classe di base funzioneranno per i derivati.

Si dice che una classe sarà sottoclasse della classe di cui eredita. D'altra parte, questa classe sarà la tua superclasse. Può riferirsi alla classe più generica come una classe base, perché è alla base della gerarchia.

Polimorfismo

L'eredità è molto popolare in alcuni linguaggi con tipi statici, perché consente al programmatore di evitare alcune delle restrizioni di tipo statico.

Un oggetto che eredita da un altro oggetto è considerato un sottotipo di quell'oggetto. Un esempio potrebbe essere gli oggetti "istruttore" e "studente", ognuno dei quali eredita "persona".

Se l'istruttore e lo studente sono la stessa persona, puoi scrivere una funzione che accetta il tipo di persona come parametro e che funziona negli oggetti istruttori e studenteschi, perché entrambi sono eredi di persona.

Tipi di eredità

Ereditarietà unica

Quando una classe derivata eredita le proprietà e il comportamento di una singola classe. Cioè, una classe si estende a un'altra singola classe.

Ereditarietà multilivello

Si riferisce al gadget in cui è possibile ereditare da una classe derivata, rendendo questa classe derivata la classe base per una nuova classe. Cioè, risulta quando una classe derivata viene creata da un'altra classe derivata.

Può servirti: von Neumann Architecture: Origin, Model, come funziona

Ereditarietà gerarchica

In questa eredità, molte sottoclassi ereditano da una singola classe. Cioè, succede quando una singola classe di base è ereditata da più di una classe derivata.

Eredità ibrida

È l'eredità risultante quando una delle tre eredità precedenti (uniche, gerarchiche e multilivello) sono combinate).

Ereditarietà multipla

Corrisponde alla figura ereditaria quando una classe eredita più di una superclasse. L'esistente inconveniente con questo tipo di eredità è che la classe derivata dovrà elaborare la dipendenza che ha con due classi di base.

D'altra parte, questo tipo di eredità consente ai programmatori di erigere le classi che combinano aspetti di più classi e le loro gerarchie corrispondenti.

Tipi di eredità da una classe base

Ereditarietà pubblica

Quando una classe deriva da una classe di base pubblica, i membri pubblici della classe base diventano membri pubblici della classe derivata e i membri protetti della classe base diventano membri protetti della classe derivata.

I membri privati ​​di una superclasse non saranno mai accessibili direttamente da una classe derivata, ma puoi avere accesso ad essi tramite chiamate effettuate ai membri pubblici e protetti dalla classe base.

Ereditarietà protetta

Quando viene creata una classe che eredita da una superclasse protetta, sia i membri pubblici che protetti da questa superclasse diventeranno membri protetti della classe derivata.

Ereditarietà privata

Quando una sottoclasse viene creata da una superclasse privata, i membri che sono pubblici e protetti da questa superclasse diventeranno membri privati ​​della sottoclasse.

Esempi

Esempio in Python

Per mostrare come funziona il principio di eredità, i robot o una migliore classe di robot saranno presi nel linguaggio di programmazione Python. Per questo, verrà specificata una classe chiamata Robotmedic (PhysicianRobot), che deriva dalla superclasse del robot.

Può servirti: piante industriali del Perù

Se si osserva il codice di classe robotmed, si può vedere che in questa classe non è stato definito alcun attributo o metodo.

Poiché la classe robotica è una sottoclasse robot, in eredità sia il metodo __init__ che say_hi in questo caso. Ereditando questi metodi significa che possono essere usati come se fossero stati definiti nella classe robotmed.

Quando viene creata un'istanza robotica, la funzione __init__ creerà anche un attributo di nome. Il metodo Say_HI può essere applicato all'oggetto robotmemico "y", come si può vedere nel risultato del codice precedente.

Esempio in c++

Una classe può ereditare più di una classe, il che significa che può ereditare i dati e le funzioni di diversi superclassi. Per definire una classe derivata, viene utilizzato un elenco di derivazione della classe per specificare le classi di base.

Un elenco di referral di classe in C ++ nomi una o più classi di base e ha il modo seguente: Classe Classe Derced: Access-uscificatore Classe base, in quale Access-uscificatore È pubblico, Protetto O Privato, E Classe base È il nome di una classe precedentemente definita. Se non usato Access-uscificatore, È preso Privato predefinito.

La superclasse "forma" e la sua classe derivata "rettangolo" possono essere considerate come segue:

Quando il codice precedente viene compilato ed eseguito, si verifica il seguente risultato: "Area totale: 35".

Riferimenti

  1. Dave Braunschweig (2020). Ereditarietà e polimorfismo. Comunità Abus. Tratto da: stampa.Un autobus.Comunità.
  2. Python Course (2020). Eredità. Tratto da: Python-Course.Unione Europea.
  3. Data Mentor (2020). R Ereditarietà. Tratto da: Datament.Io.
  4. Tutorials Point (2020). C ++ eredità. Tratto da: Tutorialspoint.com.
  5. Net-Informations (2020). Diversi tipi di eredità. Preso da: Informazioni netti.com.