Vai al contenuto

Superclasse (informatica)

Da Wikipedia, l'enciclopedia libera.

Superclasse è un termine utilizzato nella programmazione orientata agli oggetti per indicare una classe generica, non necessariamente astratta, che può essere estesa da una o più sottoclassi, o classi figlie, che ne rappresentano delle versioni specializzate. 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

[modifica | modifica wikitesto]

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à variano a seconda del linguaggio usato.

Nella programmazione in 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.

   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
          }
      }
   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
          }
      }

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.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy