Per prendere le proprietà di una classe astratta da una sottoclasse devi estenderla, invece, le interfacce devono essere implementate.

Non necessariamente devi implementare, in una sottoclasse, tutti i metodi della classe astratta e puoi farlo anche in modo parziale, in tal caso, la sottoclasse dovrà essere dichiarata astratta a sua volta. (Qualcuno dovrà pur implementarli ... ). Nelle interfacce ciò non è permesso.

Puoi implementare più interfacce in una classe e solamente una classe astratta.

Altre differenze non mi vengono in mente ...