Il modificatore abstract
Il
modificatore abstract può
essere applicato a classi e metodi.
Metodi astratti
Un
metodo astratto non implementa un proprio blocco di codice e quindi il suo comportamento
perciò termina con un punto e virgola.
public
abstract void dipingiQuadro();
Questo
metodo non può essere chiamato ma può essere riscritto.
Un
metodo astratto può essere definito solo
dentro una classe astratta.
Vediamo
questo codice:
abstract class MiaClasse {
abstract int metodo1();
abstract int metodo2(){
return 5;
};
int metodo3();
int metodo4(){
return 5;
}
}
Il
metodo1()
compila , è un metodo astratto e non ha corpo(body).
Il
metodo2()
non
compila , è un metodo astratto e non può avere un corpo.
Il
metodo3()
non
compila , è un metodo concreto e non ha corpo.
Il
metodo4()
compila , è un metodo concreto con un corpo.
Una classe astratta può avere metodi concreti.
Se
al posto di abstract class MiaClasse scrivessimo class MiaClasse avremmo un errore di compilazione per la presenza dentro la
classe concreta di metodi astratti.
Per
i metodi gli unici modificatori permessi insieme ad abstract sono public e
protected
public abstract int metodo1();
protected abstract int metodo2();
Classi astratte
Una
classe dichiarata astratta non può essere istanziata.
Il
senso è quello di obbligare l’estensione di una classe astratta da parte di una
classe concreta. Per questa ragione non si possono usare i modificatori final e
asbtract insieme.
Nessun commento:
Posta un commento