Java/Metodi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
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''''override''' si ottiene quando si usa la parola chiave '''static''' nella dichiarazione di un metodo, permettendo così l'invocazione del metodo al di fuori di un'istanza specifica della classe, esattamente come le funzioni nei linguaggi non OOP. Ad esempio:
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:
class Cane{
<source lang=java>
public static void abbaia(){
public class ClassePadre {
System.out.println("Woof!");
}
public void print(){
}
System.out.println("Woof!Classe padre");
Creerà una classe "Cane" il cui metodo "abbaia" potrà essere usato anche senza aver creato un oggetto cane, in questo modo:
}
Cane.abbaia();
 
La sintassi è ''NomeDellaClasse.NomeDelMetodo(eventuali argomenti)''.
}
 
class ClasseFiglio extends ClassePadre{
 
@Override
public void print() {
System.out.println("Classe figlio");
}
public static void abbaiamain(String[] args) {
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.
 
È ovviamente possibile creare dei metodi con lo stesso nome e static, combinando così overload e override
 
== This e Super ==