Superclasse (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m inserimento link sottoclasse
tolti wikilink dai titoli (collegamenti ora presenti nel testo)
 
(42 versioni intermedie di 15 utenti non mostrate)
Riga 1:
{{S|programmazione}}
'''Superclasse''' è un termine utilizzato nella [[programmazione orientata agli oggetti]] per indicare una [[classe (informatica)|classe]] generica, non necessariamente [[classe astratta|astratta]], che vienepuò essere estesa da un'altra,una chiamatao più [[sottoclasse (informatica)|sottoclassi]], pero funzionalitàclassi piùfiglie, che ne rappresentano circoscrittedelle eversioni approfonditespecializzate.
Le funzionalità della superclasse vengono ereditate da tutte le classi figlie, che possono aggiungerne di nuove. I metodi pubblici vengono ereditati dalla sottoclasse, ma quest'ultima può modificarli a seconda delle necessità; tale fenomeno è definito [[overriding]].
La superclasse contiene funzionalità che vengono utilizzate e/o estese da tutte le classi figlie.
 
==Esempio di utilizzo==
Un esempio di utilizzo di una classe astratta'''superclasse''' è una casellaclasse della''Veicolo'' grigliacon dideterminati unmetodi semplicee [[videogioco|gioco]] bidimensionale. Una casella potrebbe far parte di un sentierovariabili, acqua,dalla muriquale esi viaestendono discorrendo,diverse ma va rappresentata pur sempreclassi come un oggetto di''Macchina'' tipoo ''CasellaMoto''. LaQueste soluzioneultime èereditano utilizzarele unavariabili classeed ''Casella''i comemetodi superclassedi eVeicolo leai casellequali ''CasellaSentiero'',si ''CasellaAcqua''aggiungono le variabili e ''CasellaMuro''i comemetodi classipropri derivatedella dalla ''Casella''classe. Le modalità con cui si rappresenta questo legame di [[ereditarietà (informatica)|ereditarietà]] variano a seconda del linguaggio usato.
 
==Voci correlateJava==
 
Nella programmazione in [[Linguaggio Java|Java]] le classi ''figlie'' ereditano i metodi e le variabili della superclasse. Nel caso in cui vi siano metodi o attributi con lo stesso nome e con gli stessi parametri nella superclasse e nella sottoclasse il metodo o attributo della sottoclasse sovrascrive quello della superclasse.
===Esempio===
<syntaxhighlight lang="Java">
public class Veicolo{
public String targa;
public int cilindrata;
public Veicolo(String targa, int cilindrata){
this.targa=targa;
this.cilindrata=cilindrata;
}
public void stampa(){
System.out.println("targa: "+targa);//stampo la targa
System.out.println("cilindrata: "+cilindrata);//stampo la cilindrata
}
}
</syntaxhighlight>
 
<syntaxhighlight lang="Java">
public class Macchina extends Veicolo{ // creo la sottoclasse Macchina
public int numeroPorte;
public Macchina(int cilindrata, String targa,int numeroPorte){//definisco il costruttore
super(targa,cilindrata);//questa istruzione deve essere necessariamente la prima del costruttore
//con il costruttore vengono passati i valori dei parametri ricevuti in input
this.numeroPorte=numeroPorte;//passo il valore del parametro nella variabile dell'oggetto appena creato
}
public void stampa(){
super.stampa();//richiamo il metodo stampa della superclasse
System.out.println("numero porte: "+numeroPorte);//stampo il numero delle porte
}
}
</syntaxhighlight>
In questo esempio, se viene richiamato il metodo '''''stampa()'''''; in base all'overriding, il risultato a video sarà comprende la targa, la cilindrata e il numero delle porte.
 
==Bibliografia==
*{{cita libro|Fabrizia|Scorzoni|Informatica Programmazione in Java|2009|Loescher|Torino|ISBN=978-88-8433-030-7}}
 
==Voci correlate==
* [[Overriding]]
* [[Classe (informatica)]]
* [[Classe astratta]]
* [[Sottoclasse (informatica)]]
* [[Costruttore (informatica)]]
 
==Collegamenti esterni==
* {{cita web|url=http://www.diit.unict.it/users/alongheu/informaticaIV/03_ereditarieta.pdf|titolo=Ereditarietà e caratteristiche della superclasse|sito=DIIT|accesso=29 aprile 2014}}
 
{{Portale|informatica}}