Superclasse (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
tolti wikilink dai titoli (collegamenti ora presenti nel testo)
 
(29 versioni intermedie di 12 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)|sottoclassesottoclassi]], 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 '''superclasse''' è una classe ''LibroVeicolo'' dovecon vengonodeterminati createmetodi dellee variabili, edalla deiquale metodisi adatti. Successivamente possono essere createestendono diverse classi come ''RomanzoMacchina'' o ''RivistaMoto''. cheQueste estendonoultime ''Libro''ereditano ele chevariabili contengono gli attributi eed i metodi di LibroVeicolo maai anchequali attributisi aggiungono le variabili e i metodi propri. In questo caso ladella classe. LibroLe èmodalità definitacon '''superclasse'''cui mentresi lerappresenta classiquesto Romanzolegame e Rivistadi [[Sottoclasseereditarietà (informatica)|sottoclassiereditarietà]]. Levariano regolea cheseconda governanodel questolinguaggio fenomeno sono quelle dell'[[Ereditarietà (informatica)|ereditarietà]]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.
* [[Classe (informatica)]]
* [[Classe astratta]]
===Esempio===
* [[Sottoclasse (informatica)|Sottoclasse]]
* [[Costruttore]]
<syntaxhighlight lang="Java">
* [[Ereditarietà (informatica)]]
public class Veicolo{
* [[Programmazione orientata agli oggetti]]
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=9788884330307978-88-8433-030-7}}
 
==Voci correlate==
* [[Overriding]]
* [[Classe (informatica)]]
* [[Classe astratta]]
* [[Sottoclasse (informatica)|Sottoclasse]]
* [[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}}