Disse Jame Gosling
"Dovresti evitare l'ereditarietà dell'implementazione quando possibile."
e invece usa l'ereditarietà dell'interfaccia.
Ma perché? Come possiamo evitare di ereditare la struttura di un oggetto usando la parola chiave "extends" e allo stesso tempo rendere il nostro codice orientato agli oggetti?
Qualcuno potrebbe fornire un esempio orientato agli oggetti che illustra questo concetto in uno scenario come "ordinare un libro in una libreria?"