Posso dire che mi relaziono a questo. Anche quando ho iniziato a conoscere OO e C #, anch'io non ho avuto interfacce. Va bene. Abbiamo solo bisogno di venire a contatto di qualcosa che ti faccia apprezzare le convenienze delle interfacce.
Lasciami provare due approcci. E perdonami per le generalizzazioni.
Prova 1
Supponiamo che tu sia un madrelingua inglese. Vai in un altro paese in cui l'inglese non è la lingua madre. Hai bisogno di aiuto. Hai bisogno di qualcuno che ti possa aiutare.
Chiedete: "Ehi, sei nato negli Stati Uniti?"
Questa è l'ereditarietà.
O chiedi: "Ehi, parli inglese"?
Questa è l'interfaccia.
Se ti interessa ciò che fa, puoi fare affidamento sulle interfacce.
Se ti interessa ciò che è, fai affidamento sull'eredità.
Va bene affidarsi all'eredità. Se hai bisogno di qualcuno che parli inglese, che ami il tè e che ami il calcio, ti conviene chiedere un inglese. :)
Prova 2
Ok, proviamo con un altro esempio.
Usi diversi database e devi implementare classi astratte per lavorare con loro. Passerai la tua classe ad una classe dal fornitore di DB.
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
Molteplici ereditarietà, dici? Prova con il caso precedente. Non puoi Il compilatore non saprà quale metodo Connect stai cercando di chiamare.
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
Ora, c'è qualcosa su cui possiamo lavorare - almeno in C # - dove possiamo implementare le interfacce in modo esplicito.
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
Conclusione
Gli esempi non sono dei migliori, ma penso che riescano a raggiungere il punto.
Potrai solo "ottenere" le interfacce quando ne senti il bisogno. Fino a quando non penserai che non sono per te.