Spesso nei miei progetti definisco una superclasse astratta le cui sottoclassi variano per lo più nei loro valori per i campi definiti nella superclasse.
Ad esempio, in un gioco che sto sviluppando c'è una classe astratta Missile
con un numero di sottoclassi. Ognuno definisce un valore diverso per le variabili membro come MAX_SPEED
, MASS
, FLYING_FORCE
, che vengono quindi utilizzate nei calcoli eseguiti nella superclasse.
Uso metodi astratti in Missile
per forzare le sue sottoclassi a definire queste variabili. Ad esempio, ho semplicemente un metodo astratto defineMass()
che costringe le sottoclassi a definire il proprio valore di massa.
Un esempio diverso potrebbe essere la mia Entity
class (la superclasse di tutte le classi di gioco) che definisce un metodo loadImage()
astratto che costringe le sottoclassi a definire un'immagine per se stessi.
Questa è una buona pratica? È comune?