• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Info Ereditarietà, Oriented-object-programming.

Mi.ke

Utente Master
Autore del topic
16 Giugno 2011
2.857
60
Miglior risposta
0
Programmazione ad Oggetti, Java - Ereditarietà

L'ereditarietà è un concetto fondamentale della programmazione ad oggetti e rappresenta la possibilità di creare nuove classi a partire da una classe già esistente (classe base).
La nuova classe eredita tutti gli attributi e i metodi della classe base e può essere arricchita con nuovi attributi e nuovi metodi. La classe così ottenuta si chiama classe derivata.
La classe che è stata derivata da un'altra usando l'ereditarietà prende il nome di sottoclasse. La classe generatrice di una sottoclasse si chiama superclasse o sopraclasse.

Queste relazioni tra le classi individuano una gerarchia di classi che nasce da un processo di specializzazione. Infatti le classi che si trovano in cima alla gerarchia sono le più generali e man mano che si scende si trovano classi più specializzate.

Vi mostro un grafo di gerarchia, che rappresenta l'ereditarietà, e proviamo a creare le classi che ci servono nel codice:



Mezzi di trasporto
#Attributi
#Metodi


(Classe base). Superclasse di:

Veicoli a Motore
#Attributi
#Metodi

Sottoclasse di 'Mezzi di trasporto', superclasse a sua volta di:

Automobile
#Attributi
#Metodi

Sottoclasse di 'Veicoli a motore', classe specializzata.


Codice:
Perfavore, Entra oppure Registrati per vedere i codici!




L'ereditarietà consente di condividere ciò che è simile trale classi con la possibilità di inserire le differenza. La nuova classe si differenzia dalla sopraclasse in due modi:
-Per estensione : quando la sottoclasse aggiunge nuovi attributi e metodi che si sommano a quelli ereditati;
-Per ridefinizione :quando la sottoclasse ridefinisce i metodi ereditati.

Tiriamo le somme:

L'ereditarietà è uno strumento che consente il riutilizzo programmabile del software creato, cioè non è necessario partire da zero nella costruzione di un nuovo programma, basta utilizzare un insieme di classi già definite che hanno comportamenti simili a quelli del nuovo programma ed estenderle. L'estensione consente di inserire gli elementi aggiuntivi usati dalla nuova applicazione. Tutte le classi che sono già state scritte non vengono ricodificate, con il vantaggio di utilizzare classi già collaudate e con un buon livello di affidabilità, cioè prive di errori, perché sono state usate e controllate in altri programmi. Il riutilizzo, favorito dall'ereditarietà, consente un notevole risparmio di tempo nella produzione del software.
La programmazione orientata agli oggetti riserva molta importanza alle librerie. Tutti i linguaggi OOP forniscono librerie di classi molto vaste che possono essere sfruttate usando il meccanismo dell'ereditarietà. Quindi oltre a imparare la sintassi di un linguaggio OOP, è fondamentale conoscere la gerarchia e la struttura delle classi che compongono le sue librerie.

Spero di essere stato abbastanza chiaro, in caso contrario potete sempre chiedere, non vi mangio :emoji_relieved:

Un saluto! :bye:
 
Ultima modifica:
Hai spiegato il concetto ma non hai mostrato in pratica come si implementa :emoji_relieved:
Ti consiglio di aggiungere un codice di esempio mettendo in grassetto la parolina magica che consente di utilizzare questa "proprietà" di Java!
 
Hai spiegato il concetto ma non hai mostrato in pratica come si implementa :emoji_relieved:
Ti consiglio di aggiungere un codice di esempio mettendo in grassetto la parolina magica che consente di utilizzare questa "proprietà" di Java!
In effetti hai ragione, aggiungo degli esempi :emoji_relieved: