non ho capito la tua serie di domande.
Cmq in java c'è ereditarietà singola da classi, mentre ereditarietà multipla da interfacce. In c# non sono sicura al 100 % che sia così, chiedo conferma.

Per quanto riguarda le classi astratte, in java esistono eccome, sono classi per cui impongo un comportamento da definire (il metodo astratto).
Differiscono dalle interfacce per il semplice fatto che in genere al loro interno hanno dei metodi funzionanti, hanno campi, vogliono imporre un comportamento a chi le usa.

Un interfaccia in c++ è equivalente ad una classe astratta pura?
In cosa differisce (se differisce) la programmazione con le interfacce dalla programmazione c++ standard?
cosa vuole dire ???