Cos'è una classe astratta? Ed un metodo astratto?

Utente HTML.it
chiede

Cos'è una classe astratta? Ed un metodo astratto?

Redazione HTML.it
risponde

Una classe astratta è una classe che non può essere istanziata direttamente. Da una siffatta classe sarà possibile soltanto ereditarne proprietà e metodi nelle classi figlie. In Java, per definire una classe astratta si utilizza la parola riservata abstract. Ad esempio:

public abstract class FiguraGeometrica
{
  …
}

Sempre grazie alla parola riservata abstract, è’ possibile definire anche dei metodi astratti all’interno delle classi astratte. Tali metodi, dovranno essere necessariamente ridefiniti (tramite override) nelle classi figlie. Per fare un confronto con il C++, potremmo dire che un metodo astratto in Java equivale ad un metodo virtuale puro del C++. Un possibile esempio di un metodo astratto nella classe astratta FiguraGeometrica potrebbe essere il seguente:

public abstract void disegna();