Un intervistatore mi ha chiesto la seguente domanda e non ho potuto rispondere:Perché abbiamo bisogno di interfacce quando esistono classi astratte?
Perché abbiamo bisogno di interfacce quando esistono classi astratte?
Indipendentemente dai metodi che stiamo scrivendo nell'interfaccia, possiamo scrivere anche in Abstract. Allora perché abbiamo bisogno di interfacce separate?
Qualcuno può dirmi per quale motivo?
Advance, grazie ...
Si pensa a molteplici ereditarietà, è possibile implementare più interfacce ma è possibile ereditare solo una classe in C# –
Dal punto di vista Java, le classi astratte sono per gerarchia di ereditarietà, le interfacce per il contratto di implementazione. – NINCOMPOOP
Le interfacce sono inoltre preziose per gli scenari di iniezione delle dipendenze e di unità. Le astratte classi base possono ancora contenere la logica e, di conseguenza, non possono essere completamente ridicolizzate negli scenari di test. – mclark1129