Java/Metodi: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Sostituzione automatica (-([Pp]erch)(e'|è) +\1é) |
Nessun oggetto della modifica |
||
Riga 206:
Vediamo un esempio con una classe che gestisce delle date:
<source lang=java>
class Data{
int giorno;
Line 225 ⟶ 226:
}
</source>
Esistono due costruttori Data, che in un linguaggio come il C genererebbero un errore, poiché il compilatore non saprebbe a cosa si fa riferimento quando si richiama il metodo.
Line 234 ⟶ 236:
la JVM utilizzerà il secondo costruttore e inizializzerà l'oggetto al 5 novembre 2005.
L''''overriding''', invece, consente di ridefinire un metodo in una sottoclasse: il metodo originale e quello che lo ridefinisce hanno necessariamente la stessa firma, e solo a tempo di esecuzione si determina quale dei due deve essere eseguito. Ad esempio:
<source lang=java>
public static void abbaia(){▼
public class ClassePadre {
System.out.println("Woof!");▼
}▼
public void print(){
▲ }
}
}
class ClasseFiglio extends ClassePadre{
@Override
public void print() {
System.out.println("Classe figlio");
▲ }
ClassePadre padre = new ClassePadre();
ClassePadre figlio = new ClasseFiglio();
padre.print();
figlio.print();
}
}
</source>
La classe Figlio ridefinisce il metodo print() della classe padre e ne cambia il comportamento.
== This e Super ==
|