Modifica : la differenza tra la mia domanda e Quali sono le differenze tra classi astratte, interfacce, e quando usarli , Quali sono le classi astratte e i metodi astratti? è che le risposte scelte non Si parla della parte del warning del compilatore. Si parla addirittura del riutilizzo del codice per ereditarietà, che in realtà è una cattiva pratica.
Penso che quello che voglio sapere sia oltre la lingua scelta. Ma, comunque, intendo il metodo astratto in Java. Dalla documentazione di Oracle:
An abstract method is a method that is declared without an implementation (without braces, and followed by a semicolon).
Ma quello che voglio veramente sapere è lo scopo reale di esso, non solo le regole semantiche .
Per me, lo scopo è che il compilatore mi dirà cosa devo fare in futuro. Prendi Eclipse come esempio, quando ricavo una sottoclasse da una classe astratta, Eclipse mi aiuterà ad aggiungere tutti i metodi non implementati con un clic.
Da un altro punto di vista, un metodo astratto renderà il metodo della versione super-class, che può avere una funzionalità di base, non più disponibile, sono sovrascritti . (Ho questa conclusione dal modello decoratore.)
Tuttavia, tutto quanto sopra è dal mio intuito. Qualsiasi consiglio è apprezzato.