Superclasse (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
| m -cat |  tolti wikilink dai titoli (collegamenti ora presenti nel testo) | ||
| (45 versioni intermedie di 16 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  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]]. ==Esempio di utilizzo== Un esempio di utilizzo di una '''superclasse''' è una classe ''Veicolo'' con determinati metodi e variabili, dalla quale si estendono diverse classi come ''Macchina'' o ''Moto''. Queste ultime ereditano le variabili ed i metodi di Veicolo ai quali si aggiungono le variabili e i metodi propri della classe. Le modalità con cui si rappresenta questo legame di [[ereditarietà (informatica)|ereditarietà]] variano a seconda del linguaggio usato. == 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}} Riga 14 ⟶ 63: [[Categoria:Programmazione orientata agli oggetti]] [[en:Superclass (computer science)]] [[ru:Superclass]] | |||